domstats 查看域统计
domstats 一次调用聚合域的 CPU、内存、磁盘、网络与气球等多组统计,是做快速体检的入口。它可以按分组只看关心的部分,也可以遍历全部域做批量采集。与 cpu-stats、domblkinfo 这类更细的命令配合使用,能交叉验证数据,避免被某一个口径误导。
基本信息
| 总量查看 | virsh domstats vm1 输出全部可用统计组 |
|---|---|
| 按组过滤 | --cpu-total、--balloon、--block、--interface、--vcpu |
| 批量查看 | virsh domstats --list-domains 或 --all 遍历多个域 |
| 补充命令 | virsh cpu-stats vm1、virsh domblkinfo vm1 vda 查看更细的单项 |
| 采样口径 | 做对比时固定参数与时间窗口,否则数据不可比 |
典型使用场景
- 快速体检:一台虚机是否在消耗 CPU、内存是否被回收
- 容量观察:查看各域内存分配与气球状态
- 网络与磁盘排查:确认网卡与块设备的累计读写量
- 批量巡检:遍历全部域采集运行状态并导出留档
- 变更前后对比:固定采样口径,观察参数调整的效果
常用组合
常用组合
virsh domstats vm1 --state --cpu-total # 状态与 CPU 累计时间
virsh domstats vm1 --block # 块设备读写统计
virsh domstats vm1 --interface # 网卡收发统计
virsh cpu-stats vm1 --total # 单域 CPU 汇总
virsh domstats --list-domains --state # 批量看域状态常用分组读法
| 分组 | 内容 | 用途 |
|---|---|---|
| state | 域运行状态 | 快速确认是否在运行 |
| cpu-total | 累计 CPU 时间 | 观察 CPU 消耗趋势 |
| balloon | 内存分配与可用量 | 判断内存回收是否在起作用 |
| block | 块设备读写量与请求数 | 定位磁盘压力来源 |
| interface | 网卡收发字节与包数 | 核对网络流量规模 |
做性能对比时固定采样口径(同一组参数、同一时间窗口),否则数据不可比,很容易得出相反的结论。
统计值多为累计量:判断趋势要两次采样做差,单次读到的绝对值本身说明不了问题。
把固定分组按固定周期采集并留档,才能看出内存回收是否真的在起作用、磁盘压力是否在缓慢上升;临时抓一次往往只看到噪声,也说不清与上次相比发生了什么变化。
口径要与业务对应:单看某台虚机的数字不好下判断,把宿主整体压力与 guest 侧指标放在一起看,结论才站得住。