直接用esxtop(ESXi主机侧)按v键进入VM视图,CMDS/s列即为虚拟机实时IOPS;Linux客户机内用iostat -x 1查看r/s与w/s之和,二者分别对应读写IOPS,需结合设备名(如sda、nvme0n1)准确定位虚拟磁盘。
直接用 esxtop(esxi 环境)或 iostat(linux 客户机)就能实时统计虚拟磁盘 iops,无需额外部署。关键不是“能不能”,而是“在哪看、怎么看”。
ESXi 主机侧:用 esxtop 查虚拟机级 IOPS
这是最准的方式——从宿主机视角看每个 VM 的真实磁盘请求,不受客户机内缓存或驱动干扰。
- SSH 登录 ESXi 主机,运行
esxtop - 按 v 键切换到 VM 视图(Virtual Machine view)
- 按 f 键进入字段选择,确保勾选:
–DAVG/cmd(平均单次IO延迟,单位ms)
–KAVG/cmd(存储栈内排队延迟)
–GAVG/cmd(总响应时间)
–CMDS/s(即 IOPS,每秒命令数,含读+写) - CMDS/s 列显示的就是该虚拟机当前的实时 IOPS,刷新间隔默认2秒,可按
s修改
Linux 客户机内部:用 iostat 查分区级 IOPS
适合排查应用层行为,比如某个进程是否在疯狂刷小IO。
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
- 安装 sysstat(如未安装):
sudo apt install sysstat或yum install sysstat - 运行:
iostat -x 1(每秒刷新一次,显示扩展指标) - 关注字段:
–r/s和w/s:每秒读/写次数 → 合计即为 IOPS
–rkB/s、wkB/s:对应吞吐量,可反推平均IO大小(如 r/s=1000,rkB/s=8000 → 平均每次读8KB) - 注意设备名(如
sda、nvme0n1),虚拟磁盘通常对应sr0(光驱)或vdX(KVM)、sda(VMware PVSCSI)
图形化辅助:FinalShell 或 btop 实时看趋势
适合快速感知波动,不替代命令行诊断,但能第一时间发现异常。
- FinalShell 连接虚拟机后,右侧监控面板开启“磁盘IO”,直接显示读写MB/s和IOPS估算值(基于iostat数据)
-
btop 启动后按
d进入磁盘视图,支持多设备并列显示 r/s、w/s 数值,带滚动图表,对突发IO很敏感 - 两者都支持“锁定监控”,切标签也不丢失当前VM状态
验证与交叉比对:为什么不能只信一个来源
虚拟磁盘IOPS受多层影响:客户机IO调度 → 虚拟化层模拟/半虚拟化驱动 → 宿主机存储栈 → 物理磁盘能力。单点数据易误判。
- 若客户机
iostat显示 IOPS 很高,但 esxtop 中CMDS/s很低 → 可能大量IO被Page Cache拦截,实际没落盘 - 若 esxtop 中某VM
CMDS/s高且DAVG/cmd > 15ms→ 存储后端真瓶颈,需查LUN队列、阵列负载或SSD健康度 - 若两者IOPS都低但业务卡顿 → 问题可能不在IO,而在CPU争抢或内存换页,要同步看
esxtop的%RDY和%MEM

















