讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 中怎么排查虚拟化环境下的 CPU 超分与争用

大晨同学_8019

大晨同学_8019

发布时间:2026-10-13 11:42:29

|

650人浏览过

|

来源于php中文网

原创

CPU超分引发争用时,宿主机CPU利用率低但VM卡顿,核心是“资源可分配但不可及时调度”;需通过load average、vmstat的r/cs值、%st steal time等指标确认争用,并用virsh、ps、lscpu等定位源头及硬件瓶颈,再以降vCPU、CPU pinning、cgroups限频等方式精准缓解。

linux 中怎么排查虚拟化环境下的 cpu 超分与争用

虚拟化环境下 CPU 超分(CPU overcommit)本身是常见设计,但一旦引发争用(contention),就会表现为宿主机 CPU 利用率不高、而客户机(VM)却严重卡顿或响应延迟——这是典型的“资源可分配但不可及时调度”问题。排查重点不在“谁吃了 CPU”,而在“谁在等 CPU”以及“调度是否公平”。

CPU 超分是否已实际引发争用?先看宿主机关键指标

登录宿主机后,不急着查 VM 进程,先确认争用是否存在:

  • 看 load average 是否持续高于物理 vCPU 总数:比如 4 核宿主机,load > 4 持续 5 分钟以上,说明就绪队列积压,存在调度压力;但注意,若 load 高而 %us/%sy 很低、%id 接近 100%,则更可能是 I/O 等待导致的假性高负载,非 CPU 争用。
  • 用 vmstat -w 1 观察 r(运行队列长度)和 cs(上下文切换):r 值长期 > 宿主机逻辑 CPU 数,且 cs 每秒超 2~3 万次,大概率是多 VM 抢占调度器时间片,内核频繁切换上下文。
  • 检查 steal time(%st):在 top 或 vmstat 输出中找 %st 列(steal time)。该值代表 VM 等待宿主机 CPU 时间被其他 VM 占用的比例。若 %st > 5%,尤其在业务高峰期稳定维持,就是 CPU 超分争用的直接证据;> 20% 表明严重资源饥饿。

定位争用源头:哪些 VM 或 vCPU 在“抢”调度时间

宿主机上执行以下命令,聚焦虚拟化层视角:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 查所有 QEMU/KVM 进程的 steal 时间:ps -eo pid,comm,%cpu,%mem,pcpu,stime,etime,args --sort=-pcpu | grep qemu,结合 /proc/[pid]/stat 中第 38 字段(guest_steal_time)与第 39 字段(guest_stolen_time)可算出单个 VM 的 steal 占比。
  • 用 virsh 查 VM 实时 vCPU 统计:virsh vcpuinfo <vm-name> 显示每个 vCPU 当前状态(running / idle / blocked)及运行时长;再配合 virsh domstats <vm-name> | grep cpu.,重点关注 cpu.time(总调度时间)、cpu.wait(等待调度时间)、cpu.stolen(被 steal 时间)。
  • 识别“vCPU 密集型”VM:有些 VM 配置了远超其实际负载所需的 vCPU 数(如 16vCPU 但只跑单线程服务),会持续占用调度槽位。用 virsh list --all + virsh dumpxml <vm-name> | grep vcpu 汇总各 VM 的 vCPU 分配量,对比其实际 %cpu 使用率(top -H -p $(pgrep -f "qemu.*<vm-name>")),若分配多、使用低,就是争用隐患点。

区分是调度争用,还是底层硬件瓶颈

避免误判的关键:确认问题出在虚拟化调度层,而非物理 CPU 或 NUMA 不匹配:

  • 检查宿主机 CPU topology 和 NUMA 绑定:运行 lscpu 和 numactl --hardware。若 VM 分配了跨 NUMA 节点的 vCPU,而内存又未绑定到对应节点(virsh numatune <vm-name>),会导致远程内存访问延迟激增,表现类似 CPU 争用。
  • 观察 per-CPU 使用是否严重不均:执行 mpstat -P ALL 1,看是否某些物理核心长期 95%+,而其余核心闲置。这往往说明 VM 的 vCPU 未做 CPU pinning,KVM 默认调度导致热点集中。
  • 确认是否启用了 CPU 隔离(isolcpus)或实时调度策略:若有关键 VM 启用了 <cpu mode='host-passthrough'><numa> 或设置了 vcpupin,但宿主机未隔离对应 CPU,则争用会加剧。检查 cat /proc/cmdline 是否含 isolcpus=,以及 virsh vcpupin <vm-name> 输出。

验证与缓解建议

确认争用后,优先从配置层面干预,而非临时 kill 进程:

  • 对非关键 VM,降低 vCPU 数量,改用 CPU bandwidth 控制(cgroups v2):virsh schedinfo <vm-name> --set cpu_quota=50000 --set cpu_period=100000(限制为 0.5 核)。
  • 对高优先级 VM,启用 CPU pinning 并绑定到专用物理核心,同时关闭其 vCPU 的热插拔和自动迁移(virsh setvcpus <vm-name> --maximum X --config + --vcpupin)。
  • 检查宿主机 KVM 参数:确保 /sys/module/kvm/parameters/halt_poll_ns 设置合理(默认 0,可设为 200000 减少空闲轮询开销),并确认 kvm-intel.nested=1 等参数未引入额外开销。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3990

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3413

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2573

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6250

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5882

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3433

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2925

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3159

2023.07.25

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

80

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn