dstat 是 Linux 下轻量全面的实时监控工具,支持 CPU 与磁盘 I/O 组合监控(dstat -c -d),可追加 --disk-util 查看设备忙时百分比,或用 dstat -r 获取随机读写 IOPS。

dstat 是 Linux 下一个轻量但功能全面的实时监控工具,能同时观察 CPU 使用率和磁盘 I/O 表现,无需切换多个命令就能快速定位瓶颈。
CPU 与磁盘 I/O 的基础组合监控
直接运行 dstat -c -d 即可只显示 CPU 和磁盘读写两组核心指标,避免默认输出中冗余的网络、分页等列,界面更聚焦:
- -c:显示 CPU 使用率(usr/sys/idl/wai 等)
- -d:显示磁盘每秒读(read)、写(writ)字节数,单位自动适配为 B/K/M
- 默认每秒刷新一次;加数字如 dstat -c -d 2 表示每 2 秒更新一行
深入查看磁盘繁忙度与 IOPS
仅看吞吐量(KB/s)不够判断磁盘是否过载,还需结合设备忙碌程度和随机访问能力:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- dstat -d --disk-util:在磁盘读写旁追加各设备的“忙时百分比”(类似 iostat 的 %util),值持续 >80% 说明磁盘已饱和
- dstat -r:单独显示随机读/写 IOPS(每秒操作次数),机械盘通常
- 搭配使用如 dstat -c -r --disk-util,可同步看到 CPU 等待 I/O(wai 列)是否升高,验证是否存在 I/O 瓶颈拖慢 CPU
定位高负载进程与用户
当发现 CPU 使用率高或磁盘 I/O 持续跑满,需立刻知道谁在占用资源:
- dstat --top-cpu --top-io:并列显示当前 CPU 占用最高和 I/O 最活跃的进程(含 PID、命令、用户)
- dstat --top-mem --top-bio:若怀疑内存不足触发频繁换页,可加 top-mem 查大内存进程,top-bio 查块设备级 I/O 最大进程
- 这些 top 插件输出稳定,不随主窗口刷新滚动,适合快速抓取关键进程名
导出数据用于后续分析
临时排查可用终端直连,长期观察或对比需保存记录:
- dstat -c -d --output io_cpu.csv 1 60:每秒采集一次,共 60 行,存为 CSV 文件,方便用 Excel 或 Python 分析趋势
- 生成的 CSV 包含时间戳、CPU 各项百分比、read/writ 字节数,可画图观察 CPU 尖峰是否与磁盘写入峰值重合
- 注意:文件是追加模式,重复运行前建议清空或改名,避免数据混杂

















