vmtop 是运行在宿主机host上的用户态工具。使用vmtop可以实时动态地查看虚拟机资源的使用情况,例如CPU占用率、内存占用率、vCPU陷入陷出次数等。因此,可以使用vmtop作为虚拟化问题定位和性能调优的工具。
当前vmtop支持AArch64和x86_64处理器架构。
不同处理器架构的操作系统,vmtop的显示项存在差异,这里给出各个显示项的含义及其是否在对应架构呈现。 说明:以下采样差是指指定时间间隔内获取的两次数据的差值。
vmtop是一款命令行工具,直接以命令行的方式运行 vmtop 即可。 另外,vmtop还提供了不同可选选项,用于查询不同信息。
# vmtop [选项]
在vmtop运行状态下使用的快捷键
在host上直接以命令行的方式运行vmtop
# vmtop
输出如下:
vmtop - 2022-09-14 09:54:48 - 1.0
Domains: 1 running
DID VM/task-name PID %CPU EXThvc EXTwfe EXTwfi EXTmmioU EXTmmioK EXTfp EXTirq EXTsys64 EXTmabt EXTsum S P %ST %GUE %HYP
2 example 4054916 13.0 0 0 1206 10 0 144 62 174 0 1452 S 106 0.0 99.7 16.0
可以看到,host上只有一台名称为“example”的虚拟机,ID为2,CPU占用率是13.0%,在1秒内的陷入陷出总次数是1452,虚拟机进程占用的物理CPU为106号CPU,虚拟机内部占用时间与CPU运行时间的比是99.7%。
1.显示虚拟机线程信息 按下‘H’后可以显示线程信息:
# vmtop - 2022-09-14 10:11:27 - 1.0
Domains: 1 running
DID VM/task-name PID %CPU EXThvc EXTwfe EXTwfi EXTmmioU EXTmmioK EXTfp EXTirq EXTsys64 EXTmabt EXTsum S P %ST %GUE %HYP
2 example 4054916 13.0 0 0 1191 17 4 120 76 147 0 1435 S 119 0.0 123.7 4.0
|_ qemu-kvm 4054916 0.0 0 0 0 0 0 0 0 0 0 0 S 119 0.0 0.0 0.0
|_ qemu-kvm 4054928 0.0 0 0 0 0 0 0 0 0 0 0 S 119 0.0 0.0 0.0
|_ signalfd_com 4054929 0.0 0 0 0 0 0 0 0 0 0 0 S 120 0.0 0.0 0.0
|_ IO mon_iothr 4054932 0.0 0 0 0 0 0 0 0 0 0 0 S 117 0.0 0.0 0.0
|_ CPU 0/KVM 4054933 3.0 0 0 280 6 4 28 19 41 0 350 S 105 0.0 27.9 0.0
|_ CPU 1/KVM 4054934 3.0 0 0 260 0 0 16 12 36 0 308 S 31 0.0 20.0 0.0
|_ CPU 2/KVM 4054935 3.0 0 0 341 0 0 44 20 26 0 387 R 108 0.0 27.9 4.0
|_ CPU 3/KVM 4054936 5.0 0 0 310 11 0 32 25 44 0 390 S 103 0.0 47.9 0.0
|_ memory_lock 4054940 0.0 0 0 0 0 0 0 0 0 0 0 S 126 0.0 0.0 0.0
|_ vnc_worker 4054944 0.0 0 0 0 0 0 0 0 0 0 0 S 118 0.0 0.0 0.0
|_ worker 4143738 0.0 0 0 0 0 0 0 0 0 0 0 S 120 0.0 0.0 0.0
example虚拟机有11个线程,其中包括vCPU线程、vnc_worker、IO mon_iotreads等等,每个线程同样会显示详细CPU占用、陷入陷出等信息。
2.选择监控项 按下‘f’进入监控项编辑模式:
field filter - select which field to be showed
Use up/down to navigate, use space to set whether chosen filed to be showed
'q' to quit to normal display
* DID
* VM/task-name
* PID
* %CPU
* EXThvc
* EXTwfe
* EXTwfi
* EXTmmioU
* EXTmmioK
* EXTfp
* EXTirq
* EXTsys64
* EXTmabt
* EXTsum
* S
* P
* %ST
* %GUE
* %HYP
当前所有监控项都默认显示,通过up/down键选择,用space键来设置对应显示项是否显示/隐藏,按‘q’键退出。 将%ST、%GUE、%HYP设置为隐藏后,输出如下:
vmtop - 2022-09-14 10:23:25 - 1.0
Domains: 1 running
DID VM/task-name PID %CPU EXThvc EXTwfe EXTwfi EXTmmioU EXTmmioK EXTfp EXTirq EXTsys64 EXTmabt EXTsum S P
2 example 4054916 12.0 0 0 1213 14 1 144 68 168 0 1464 S 125
|_ qemu-kvm 4054916 0.0 0 0 0 0 0 0 0 0 0 0 S 125
|_ qemu-kvm 4054928 0.0 0 0 0 0 0 0 0 0 0 0 S 119
|_ signalfd_com 4054929 0.0 0 0 0 0 0 0 0 0 0 0 S 120
|_ IO mon_iothr 4054932 0.0 0 0 0 0 0 0 0 0 0 0 S 117
|_ CPU 0/KVM 4054933 2.0 0 0 303 6 0 29 10 35 0 354 S 98
|_ CPU 1/KVM 4054934 4.0 0 0 279 0 0 39 17 49 0 345 S 1
|_ CPU 2/KVM 4054935 3.0 0 0 283 0 0 33 20 40 0 343 S 122
|_ CPU 3/KVM 4054936 3.0 0 0 348 8 1 43 21 44 0 422 S 110
|_ memory_lock 4054940 0.0 0 0 0 0 0 0 0 0 0 0 S 126
|_ vnc_worker 4054944 0.0 0 0 0 0 0 0 0 0 0 0 S 118
|_ worker 1794 0.0 0 0 0 0 0 0 0 0 0 0 S 126
%ST、%GUE、%HYP将不会出现在显示界面上。
点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!