ESXi CPU 使用率高怎么排查?esxtop 一键定位占用高的虚拟机与进程

当 ESXi 主机 CPU 占用持续偏高、虚拟机卡顿、业务响应慢时,很多管理员不知道从何入手。本文以 ESXi 原生排查工具esxtop为核心,教你通过按c查看 CPU 概览、按f调出详细字段,快速定位是哪台虚拟机、哪个进程抢占 CPU,步骤简单直观,无需复杂工具,登录 SSH 即可快速排查问题。


一、排查前准备

  1. 登录 ESXi 网页后台,开启 SSH 服务
  2. 使用 SSH 工具(Xshell、FinalShell 等)以 root 登录 ESXi 主机
  3. 先简单观察:vCenter/ESXi 后台是否已有明显 CPU 告警

二、核心排查工具:esxtop

esxtop是 ESXi 自带的实时性能监控工具,类似 Linux 的 top,专门用于定位 CPU、内存、磁盘、网络瓶颈。

1. 启动 esxtop

直接在 SSH 里执行:

复制代码
esxtop

启动后默认显示综合性能页面。

2. 按 c 切换到 CPU 专用视图

在 esxtop 界面里直接按键盘上的 c 界面会切换为 CPU 详细统计页面,重点看几项:

  • PCPU USED(%):物理 CPU 总使用率
  • LCPUs/PCPUs:逻辑 CPU 与物理 CPU 比例
  • 下方列表:每台虚拟机的 CPU 占用排行

在这里可以一眼看出:

  • 是整体 CPU 跑满,还是个别虚拟机异常占用

3. 按 f 展开更多 CPU 关键字段

在 CPU 视图下按 f,进入字段选择菜单,可以开启更多用于精确定位的列:

常用建议开启的 CPU 排查字段:

  • C:CPU 核心占用明细
  • P:物理 CPU 映射
  • U:CPU 使用率详细百分比
  • M:内存相关辅助判断

选择完成后按空格或回车返回,界面会显示更完整信息,方便你判断:

  • 用户 CPU 高(虚拟机内部业务问题)
  • 还是系统 CPU 高(ESXi 内核、虚拟化开销)

三、快速定位高 CPU 虚拟机

在 esxtop 的 CPU 视图中,按以下逻辑判断:

  1. %USED 列,数值最大的就是 CPU 占用最高的虚拟机
  2. GID / Name 列,对应虚拟机名称
  3. %SYS:如果系统占用高,可能是 ESXi 自身进程、驱动或虚拟化调度问题
  4. %WAIT:等待过高通常不是真 CPU 忙,而是存储 / 网络瓶颈导致 CPU 空等

定位到具体虚拟机后,你可以:

  • 登录虚拟机内部查看任务管理器 / 进程占用
  • 临时限制该虚拟机 CPU 份额
  • 检查是否有死循环、恶意程序、数据库异常查询等

四、简单实用的进阶操作

  • V(大写):只显示虚拟机,隐藏系统进程,更清爽
  • P(大写):按 CPU 使用率从高到低排序
  • s + 数字 :修改刷新间隔,如s 2表示 2 秒刷新一次
  • q:退出 esxtop

五、常见原因总结

  1. 虚拟机内部业务进程占满 CPU(数据库、编译、病毒等)
  2. 虚拟机 CPU 分配过多,导致 ESXi 调度压力大
  3. CPU 超配严重,多个虚拟机争抢物理核心
  4. ESXi 自身服务、驱动、硬件异常导致系统 CPU 高
  5. 存储延迟高引发 CPU 大量 I/O 等待(% WAIT 偏高)
相关推荐
A小辣椒3 小时前
TShark:Wireshark CLI 功能
linux
唐青枫6 小时前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马7 小时前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261357 小时前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
A小辣椒7 小时前
TShark:基础知识
linux
用户3721574261357 小时前
Java 打印 Word 文档:从基础打印到高级设置
java
AlfredZhao9 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
用户3521802454751 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
东坡白菜1 天前
破局全栈:一个前端开发的Java入门实战记录(1)
java·全栈