获取验证码
ESXi物理主机整体CPU使用率持续异常偏高,所有虚拟机内部业务负载均处于低位,无高消耗应用运行,故障根源集中在ESXi宿主机底层后台线程、系统守护进程。优先使用ESXi本地SSH命令排查定位,第一步执行top -L列出主机全部底层线程,筛选CPU占用率最高的线程PID;第二步使用esxtop工具区分内核线程、net-lldp等系统服务进程,定位异常消耗源;主流高发故障为net-lldp LLDP邻居发现服务异常死循环持续消耗CPU资源,其次为硬件监控、存储扫描、日志采集内核线程过载。
有VMware全系列产品官方资源和定制版资源需求的可以移步:
机房一台8路物理ESXi主机,监控平台持续推送CPU使用率超过95%紧急告警,登录vCenter查看全部虚拟机资源监控,每台虚拟机CPU使用率均低于20%,不存在数据库、压测、批量计算等高负载业务。
1.1 初期无效排查操作
最开始只查看vCenter虚拟机资源面板,误以为是虚拟机隐藏后台进程抢占资源,逐台登录虚拟机系统核查CPU、关闭闲置虚拟机,主机整体CPU占用无任何下降;又尝试重启所有虚拟机,主机CPU负载依旧维持高位,判定负载消耗不在虚拟机内部,而是ESXi宿主机本地系统进程、内核线程。
1.2 分层定位真实故障根因
SSH登录故障ESXi主机,执行top -L查看全量线程,发现net-lldp相关后台线程单核心占用达到98%,持续循环发包扫描邻居设备,无休眠间隔,持续消耗处理器资源。
临时执行命令停止net-lldp服务后,主机整体CPU使用率瞬间下降至25%正常区间;另有一台同故障主机排查发现是存储自动扫描内核线程长期轮询磁盘,导致CPU居高不下,调整存储巡检扫描间隔后负载恢复正常。
1、高发成因一:net-lldp LLDP后台服务线程异常死循环
net-lldp是ESXi内置链路层邻居发现服务,用于识别上联交换机端口、网络拓扑信息。正常运行时仅周期发送少量探测报文,CPU占用极低;当交换机频繁闪断、端口频繁上下线、网络风暴干扰时,net-lldp服务会进入无限循环扫描状态,持续高频发送探测数据包,单个内核线程长期占满单颗CPU核心,造成整机CPU使用率飙升。
2、高发成因二:ESXi各类后台内核守护线程过载
ESXi底层存在大量独立运行的系统线程,不归属任何虚拟机,直接占用物理主机CPU资源,常见高耗线程类型: a. 存储巡检线程:定时轮询vSAN/VMFS磁盘健康状态、快照链、硬件RAID信息,磁盘数量过多、巡检间隔过短会持续消耗CPU; b. 硬件监控线程:服务器主板传感器、风扇、电源、硬盘温度持续采集,硬件告警堆积时监控线程循环上报日志; c. 日志采集、审计同步线程:syslog远程日志转发、vCenter性能指标采集,日志量暴增时同步线程持续满载; d. 网络内核调度线程:多网卡、多端口组流量转发,大量虚拟机网卡频繁收发小包流量,内核转发线程占用CPU。
3、成因三:第三方驱动、插件异常线程抢占资源
服务器RAID卡、HBA卡、万兆网卡第三方硬件驱动,或是第三方备份、监控VIB插件,驱动适配异常会产生死循环内核线程,持续占用CPU核心,虚拟机无负载但主机整体满载。
1、第一步:SSH登录ESXi主机,使用top -L 查看全量线程CPU占用 1.1 登录方式
vCenter开启ESXi主机SSH服务,使用Xshell、SecureCRT工具通过root账号登录主机命令行。
1.2 执行全量线程查看命令
top -L
参数-L作用:展示主机所有独立运行的内核线程、用户进程线程,不合并进程总占用,可精准看到单一线程CPU占用百分比;重点观察%CPU列数值持续90%以上的线程,记录对应PID、线程名称。
1.3 筛选高频异常线程标识
输出结果中包含net-lldp字样的线程为LLDP服务异常线程;名称含vmw_pvscsi、vmxnet3、vsan、stor_scan、hw_monitor均为硬件/存储/监控内核线程。
2、第二步:使用esxtop工具深度区分内核/用户进程负载 2.1 启动esxtop监控工具
esxtop
默认界面展示虚拟机资源消耗,按下按键切换不同监控视图: a. 按c:切换至CPU视图,区分World ID(ESXi内核线程标识),%CUSE为用户态占用、%SYS为内核态占用; b. 按n:切换至网络视图,查看网卡小包转发负载; c. 按d:切换至磁盘存储视图,查看磁盘IO扫描负载。
2.2 定位非虚拟机高耗World线程
正常业务负载World名称会带虚拟机名称标识;无虚拟机名称、标识为vmware后台服务、硬件驱动、net-lldp的World线程,即为宿主机自身高CPU消耗源。
3、第三步:针对性处理各类异常高耗进程 3.1 故障类型1:net-lldp LLDP服务线程满载
# 临时停止LLDP服务,立即释放CPU资源 /opt/VMware/lldp/bin/net-lldp stop # 永久关闭开机自启(长期不需要拓扑发现场景) chkconfig net-lldp off # 如需保留LLDP功能,修改探测发包间隔,降低CPU消耗 vi /opt/VMware/lldp/etc/lldpd.conf
3.2 故障类型2:存储/硬件监控内核线程高占用
vSAN/VMFS存储扫描线程过载:调整vSAN自动磁盘巡检周期,延长扫描间隔,减少后台轮询频率;硬件监控线程告警堆积:清理服务器历史硬件告警,关闭不必要的传感器实时采集。
3.3 故障类型3:第三方硬件驱动/插件线程异常
临时卸载对应第三方VIB驱动插件,重启ESXi主机;联系硬件厂商下载适配当前ESXi版本的稳定驱动包,重新安装适配版本驱动。
| 故障现象 | 根因分析 | 标准解决方案 |
|---|---|---|
| ESXi整机CPU占用90%+,所有虚拟机内部CPU负载均低于20% | ESXi宿主机后台线程异常高消耗,主流为net-lldp LLDP服务死循环占用CPU核心 | SSH执行top -L定位高耗线程PID,停止net-lldp服务释放CPU资源,按需调整LLDP探测间隔或永久关闭自启 |
| top -L查到net-lldp线程单核心满载,停止服务后CPU恢复,重启ESXi故障复现 | net-lldp默认开机自启,交换机端口频繁闪断、网络风暴持续触发LLDP无限扫描循环 | chkconfig net-lldp off关闭开机自启;若需拓扑监控,修改lldpd.conf延长报文发送间隔,同时排查交换机端口闪断故障 |
| 无net-lldp高耗线程,存储、硬件监控内核线程持续占用大量CPU | vSAN/VMFS磁盘数量多,存储自动巡检轮询频繁;硬件告警堆积,监控线程持续上报日志 | 调整vSAN磁盘健康巡检周期,清理服务器历史硬件告警,关闭闲置硬件传感器实时采集功能 |
| top、esxtop查不到高耗线程,但vCenter监控持续显示主机CPU满载 | vCenter性能指标采集缓存异常,监控图表数值失真,主机实际CPU负载正常 | 重启vCenter性能数据库服务,清除性能统计缓存,等待重新采集主机资源数据后核对负载 |
| 第三方HBA/万兆网卡驱动线程持续高耗CPU,关闭LLDP后负载无改善 | 硬件厂商第三方VIB驱动与当前ESXi版本适配存在bug,驱动内核线程死循环抢占CPU资源 | 临时卸载异常第三方驱动VIB,重启ESXi主机恢复负载;下载厂商适配ESXi稳定版驱动重新部署 |
1. 误区:ESXi主机CPU占用高,一定是虚拟机内部业务负载过高,只需要管控虚拟机即可解决纠正:vCenter仅展示虚拟机资源消耗,无法展示ESXi宿主机底层系统线程、驱动线程负载;大量故障场景负载全部来自宿主机后台服务,虚拟机空载主机依旧满载,必须登录ESXi本地命令行排查底层线程。
2. 误区:查看主机CPU负载只需要执行普通top命令,不需要加-L参数纠正:默认top命令会合并同一进程下所有线程的CPU占用,无法区分单条异常线程;top -L参数可以逐条展示独立线程消耗,精准定位单核心满载的死循环后台线程,是排查此类故障的核心命令。
3. 误区:net-lldp是ESXi必备核心服务,不能关闭,关闭后网络会出现故障纠正:net-lldp仅用于二层网络拓扑识别、交换机端口信息展示,不影响虚拟机网络转发、IP通信;无网络拓扑运维需求的机房可永久关闭该服务,不会对业务网络造成任何影响。
4. 误区:esxtop只能查看虚拟机资源负载,无法定位系统内核线程CPU消耗纠正:esxtop是ESXi专用底层监控工具,切换至CPU视图后可以展示全部World内核线程,区分虚拟机负载与宿主机系统线程,是深度定位硬件、存储、网络内核负载的必备工具。
5. 误区:宿主机后台线程CPU占用过高,只能重启整台ESXi主机才能释放负载纠正:绝大多数后台服务、异常线程可单独停止、重启,无需整机重启;例如net-lldp可单独启停,存储巡检可在线调整间隔,仅第三方驱动异常无法在线处理时才需要重启主机。
主机负载巡检规范:监控平台区分两层CPU指标,一层为单台虚拟机CPU使用率,一层为ESXi整机物理CPU使用率;整机CPU满载但所有虚拟机负载偏低时,立即触发SSH底层线程排查流程。
LLDP服务运维规范:机房无交换机拓扑可视化运维需求时,统一关闭net-lldp开机自启,规避LLDP死循环抢占CPU故障;需拓扑管理的机房,统一延长LLDP探测报文发送间隔,降低后台CPU消耗。
硬件驱动上线规范:所有第三方HBA、RAID、万兆网卡VIB驱动上线前,在测试ESXi主机长时间运行验证负载稳定性,确认无内核线程高耗bug后再批量部署至生产集群。
存储后台巡检规范:vSAN集群、多盘VMFS存储集群,统一调整磁盘健康自动巡检周期,避开业务高峰高频扫描磁盘,减少存储内核线程CPU占用。
故障排查操作规范:整机CPU满载、虚拟机无高负载标准排查流程:SSH执行top -L定位高耗线程→esxtop区分线程类型→针对性启停服务/调整配置/更换驱动,禁止直接重启整机、批量关闭虚拟机等粗暴操作。