dstat 的价值在一屏总览
dstat 把 CPU、磁盘、网络、内存等多个维度合成一张宽表,一行就能看到系统整体状态,适合排查初期快速建立画面:到底是 CPU 满、磁盘忙还是网络堵。默认每秒刷新并持续输出。要注意它上游已停止维护,部分新发行版改用 dool 或不再提供该包,装不上时用 vmstat、iostat、sar 组合替代。
基本信息
| 适用平台 | Linux(多为额外包,RHEL 系常在 EPEL 提供) |
|---|---|
| 语法 | dstat [选项] [间隔] [次数] |
| 常用选项 | -c CPU、-d 磁盘、-n 网络、-m 内存、--disk-util 磁盘利用率、-t 时间戳、--output 导出 CSV |
| 权限要求 | 普通用户即可运行 |
| 替代工具 | dool、sysstat(sar/iostat)、vmstat |
典型使用场景
- 排查初期快速判断瓶颈在 CPU、磁盘还是网络
- 变更前后做粗略对比:同一组维度前后各跑一次
- 把 60 秒采样导出 CSV 存档或交给同事分析
- 演示与培训时一屏展示全系统状态
- 没有完善监控平台的临时机器上的观测手段
常用示例
常用示例
sudo dnf install -y dstat # RHEL 系通常在 EPEL 提供
dstat -c -d -n -m 1 # CPU、磁盘、网络、内存,每秒刷新
dstat --disk-util # 关注磁盘利用率是否接近 100%
dstat -t --output /tmp/dstat.csv 1 60 # 带时间戳导出 CSV,采 60 次
dstat -c -d -n -m --top-cpu 1 10 # 顺带显示最耗 CPU 的进程
dstat -n --net eth0 1 5 # 只看指定网卡(默认是所有网卡合计)
iostat -xz 1 5 # 缺少 dstat 时的替代:磁盘视角
sar -u -r -n DEV 1 5 # 替代:CPU、内存、网络一屏看常用维度
| 选项 | 维度 | 关注点 |
|---|---|---|
| -c | CPU(用户、系统、空闲、等待) | 等待高说明被 IO 拖累 |
| -d | 磁盘读写带宽与 IOPS | 带宽打满说明已到瓶颈 |
| --disk-util | 磁盘利用率 | 接近 100% 意味着排队严重 |
| -n | 网络收发 | 默认合计,需要细化要指定网卡 |
| -m | 内存与 swap | 大量换出说明内存不足 |
| -t 与 --output | 时间戳与 CSV 导出 | 便于留档与协作分析 |
dstat 与 sysstat 家族互补:dstat 擅长把多个维度并排展示、便于整体判断;sar 擅长历史数据留存与趋势回看。机器上装了什么就用什么,不必强求。
排查初期跑十几秒到一分钟就足够形成判断:需要长期留档就用 --output 导出 CSV 或交给监控平台,不要让观测进程长期占着终端和资源。