Linux 怎么使用 pidstat 监控虚拟化管理程序的性能消耗

陌雪小哥_6677

陌雪小哥_6677

2026-08-09

939人浏览

原创

pidstat 不直接监控虚拟机负载,但能精准监控 qemu-system-x86_64 等宿主进程的 cpu(%guest/%usr/%system)、内存(rss/majflt)和 i/o(rkb/wkb)消耗,从而评估虚拟化实际开销与性能瓶颈。

linux 怎么使用 pidstat 监控虚拟化管理程序的性能消耗

pidstat 本身不直接监控虚拟化管理程序(如 KVM、Xen、libvirt 或 QEMU 进程)的“虚拟机负载”,但它能精准监控运行虚拟机的底层宿主进程(比如 qemu-system-x86_64)本身的资源消耗——这才是判断虚拟化开销的关键入口。

确认你要监控的目标进程

虚拟化管理程序在宿主机上表现为普通用户态进程,常见有:

  • qemu-system-x86_64(KVM/QEMU 虚拟机实例)
  • libvirtd(libvirt 守护进程,负责调度和管理)
  • virtqemud 或 virtinterfaced(较新 libvirt 架构下的分拆服务)

先用 ps aux | grep qemu 或 pgrep -af 'qemu-system' 查看正在运行的虚拟机对应 PID 和完整命令行,避免只匹配 qemu 导致误抓其他进程。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

监控单个虚拟机进程的 CPU 和 %guest 消耗

关键指标是 %guest ——它表示该进程为虚拟客户机(Guest OS)执行指令所占用的 CPU 时间百分比,是衡量虚拟化实际计算开销的核心字段:

  • pidstat -u -p $(pgrep -f 'qemu-system-x86_64.*vm-name') 2
  • 输出中重点关注:%usr(QEMU 自身逻辑开销)、%system(内核交互如 vhost、KVM ioctl)、%guest(真正跑 Guest 的时间)
  • 若 %guest 长期接近 %CPU,说明虚拟机 CPU 利用率高且 KVM 调度高效;若 %guest 很低但 %usr 或 %system 很高,可能是 QEMU 模拟开销大、IO 等待或配置不当(如未启用 KVM、缺少 CPU passthrough)

同时观察内存与 I/O 压力

虚拟机性能瓶颈常来自内存映射或磁盘/网络后端:

  • pidstat -r -d -p $(pgrep -f 'qemu-system-x86_64.*vm-name') 2
  • RSS 突增可能反映 Guest 内存分配激增或大页未生效;majflt/s(主缺页)持续高企,说明频繁从 backing file(如 qcow2)加载内存页,需检查存储性能或启用 cache=writeback
  • rkB/s/wkB/s 可定位是否磁盘 IO 成瓶颈;结合 iostat -x 1 对比宿主机块设备利用率,确认是 QEMU 进程拖慢还是底层存储响应慢

区分宿主进程与 Guest 内部视角

pidstat 查的是宿主机视角下 QEMU 进程的行为,不是 Guest 里的 top 数据:

  • Guest 中看到的 “100% CPU” 在宿主机 pidstat 中可能只显示为 %guest: 85.2 + %usr: 12.1,因为部分时间花在模拟、设备模型、中断注入等
  • 不要用 pidstat 直接查 systemd 或 libvirtd 来评估虚拟机负载——它们只做管理,真正吃资源的是每个 qemu 子进程
  • 如需横向对比多个 VM,可用 pidstat -u -p "$(pgrep -f 'qemu-system' | tr '\n' ',' | sed 's/,$//')" 3 一次性监控所有 QEMU 实例

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

linux 虚拟化

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.06.21

3950

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3373

10

linux find
linux find

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

2023.06.30

2533

5

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

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

2023.07.05

6130

7

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

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

2023.07.06

5782

7

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

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

2023.07.20

3393

8

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

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

2023.07.20

2885

4

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

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

2023.07.25

3099

6

linux查找文件命令
linux查找文件命令

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

2023.07.31

297

3

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习