21.4. kvm_stat


kvm_stat 命令是一个 python 脚本,该脚本从 kvm 内核模块中检索运行时统计信息。kvm_stat 命令可用于诊断对 kvm 可见的 guest 行为。特别是,与客户机相关的性能相关问题。目前,所报告的统计数据适用于整个系统;报告所有正在运行的 guest 的行为。要运行此脚本,您需要安装 qemu-kvm-tools 软件包。
kvm_stat 命令要求已加载 kvm 内核模块并挂载 debugfs。如果没有启用这些功能,命令会输出启用 debugfskvm 模块所需的步骤。例如:
# kvm_stat
Please mount debugfs ('mount -t debugfs debugfs /sys/kernel/debug')
and ensure the kvm modules are loaded
如果需要,挂载 debugfs
# mount -t debugfs debugfs /sys/kernel/debug

kvm_stat Output

kvm_stat 命令输出所有虚拟客户机和主机的统计数据。在该命令终止前(使用 Ctrl+cq 键)会更新输出。

# kvm_stat

kvm statistics

efer_reload                 94       0
exits                  4003074   31272
fpu_reload             1313881   10796
halt_exits               14050     259
halt_wakeup               4496     203
host_state_reload	1638354   24893
hypercalls                   0       0
insn_emulation         1093850    1909
insn_emulation_fail          0       0
invlpg                   75569       0
io_exits               1596984   24509
irq_exits                21013     363
irq_injections           48039    1222
irq_window               24656     870
largepages                   0       0
mmio_exits               11873       0
mmu_cache_miss           42565       8
mmu_flooded              14752       0
mmu_pde_zapped           58730       0
mmu_pte_updated              6       0
mmu_pte_write           138795       0
mmu_recycled                 0       0
mmu_shadow_zapped        40358       0
mmu_unsync                 793       0
nmi_injections               0       0
nmi_window                   0       0
pf_fixed                697731    3150
pf_guest                279349       0
remote_tlb_flush             5       0
request_irq                  0       0
signal_exits                 1       0
tlb_flush               200190       0

变量说明:

efer_reload
扩展功能启用注册(EFER)的数量将重新加载。
退出
所有 VMEXIT 调用的数量。
fpu_reload
VMENTRY 重新加载 FPU 状态的次数。当客户机使用浮动点单元(FPU)时,fpu_reload 会被递增。
halt_exits
由于调用 停止,客户机数量会退出。在客户机闲置时,通常会看到这种退出。
halt_wakeup
暂停 中唤醒的数量。
host_state_reload
主机状态的完整重新加载计数(当前为 MSR 设置和客户机 MSR 读取)。
hypercalls
虚拟机管理程序服务调用的数量。
insn_emulation
主机模拟的客户机说明数。
insn_emulation_fail
预告尝试 中失败数
io_exits
从 I/O 端口访问中退出 guest 的数量。
irq_exits
由于外部中断而退出的客户机数量。
irq_injections
发送到客户机的中断数。
irq_window
客户机数量从未完成的中断窗口退出。
largepages
当前正在使用的大页面数。
mmio_exits
由于内存映射 I/O(MMIO)访问,客户机数量会退出。
mmu_cache_miss
创建 KVM MMU 影子页面的数量。
mmu_flooded
在 MMU 页面中检测过多的写操作数。这统计检测到的写入操作不受单个写入操作的影响。
mmu_pde_zapped
页面目录条目(PDE)破坏性操作数量。
mmu_pte_updated
页面表条目(PTE)破坏性操作的数量。
mmu_pte_write
客户机页表条目(PTE)写入操作的数量。
mmu_recycled
可重新声明的影子页面数。
mmu_shadow_zapped
影子页面的数量。
mmu_unsync
尚未链接的非同步页面数量。
nmi_injections
将不可屏蔽中断(NMI)注入给客户机的数量。
nmi_window
客户机数量从(否)不可屏蔽中断(NMI)窗口退出。
pf_fixed
固定数量(非过期)页表条目(PTE)映射。
pf_guest
注入到客户机中的页面错误数。
remote_tlb_flush
远程(同级 CPU)翻译缓冲(TLB)刷新请求的数量。
request_irq
客户机中断窗口请求将退出。
signal_exits
由于主机中待处理的信号,guest 数量会退出。
tlb_flush
管理程序执行的 tlb_flush 操作数量。
注意
kvm_stat 命令的输出信息由 KVM 管理程序导出,作为位于 /sys/kernel/debug/kvm/ 目录中的伪文件。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.