核心内容摘要
S-Lab for Advanced Intelligence:南洋理工大学AI研究的创新引擎
dstat工具简介dstat是一款功能强大的Linux系统资源监控工具被誉为一款全能的系统统计工具。
它能够实时收集并显示CPU、内存、磁盘I/O、网络流量、系统负载等多种性能指标将所有关键数据集成在一个统一的界面中为系统管理员提供全面的性能监控视图。
主要特点1多功能集成- 替代vmstat、iostat、netstat、ifstat等多个传统工具2实时监控- 支持动态刷新实时展示系统状态3高度可定制- 可根据需求选择监控的指标和输出格式4彩色显示- 默认彩色输出数据更直观5插件扩展- 支持丰富的插件系统
命令语法dstat [-afv] [options..] [delay [count]]参数结构说明-afv常用标志选项options监控选项用于指定要显示的统计信息delay刷新间隔时间秒默认值为1秒count刷新次数默认值为无限次基本用法示例1默认用法每秒刷新持续运行dstat2指定刷新间隔每2秒刷新一次dstat 23完整参数每3秒刷新一次总共刷新5次dstat 3
核心选项详解
1 常用标志选项选项功能说明等价命令-a显示所有常用统计-cdngy-f自动展开所有设备列表--vvmstat兼容模式-pmgdsc -D total
2 基础监控选项# CPU相关 -c, --cpu # 启用CPU统计 -C 0,3,total # 监控指定CPU0号、3号和总计 # 磁盘I/O -d, --disk # 启用磁盘统计 -D sda,total # 监控指定磁盘sda和总计 # 内存相关 -m, --mem # 启用内存统计 -s, --swap # 启用Swap交换分区统计 -g, --page # 启用内存分页统计 # 网络相关 -n, --net # 启用网络统计 -N eth0,total # 监控指定网卡eth0和总计 # 系统状态 -l, --load # 启用系统负载统计 -p, --proc # 启用进程统计 -y, --sys # 启用系统统计
3 高级监控选项# 系统底层统计 --aio # 异步I/O统计 --fs, --filesystem # 文件系统统计 --ipc # IPC统计 --lock # 锁统计 --raw # 原始设备统计 # 网络协议统计 --socket # 套接字统计 --tcp # TCP协议统计 --udp # UDP协议统计 --unix # Unix域套接字统计 # 系统内核统计 --vm # 虚拟内存统计
4 显示控制选项# 输出格式控制 --bits # 以bit为单位显示字节值 --float # 强制显示浮点数值 --integer # 强制显示整数值 # 界面显示控制 --bw, --blackonwhite # 为白色背景终端调整颜色 --nocolor # 禁用颜色隐含--noupdate --noheaders # 禁用重复的标题行 --noupdate # 禁用中间更新 # 输出到文件 --output filename.csv # 将CSV格式输出写入文件 --profile # 退出时显示性能分析统计
常用监控示例1示例1基础系统监控监控CPU、磁盘、网络、内存分页和系统负载dstat -cdngy2示例2磁盘I/O深度监控监控指定磁盘并显示详细信息dstat -d -D sda,sdb --disk-util [rootyyzcdb81 ~]# dstat -d -D sda,sdb --disk-util --dsk/sda-----dsk/sdb-- sda--sdb- read writ: read writ|util:util 1552B 2538B:1420B 1224B|
02:
02 0 0 : 0 0 | 0: 0 0 0 : 0 0 | 0: 0 0 0 : 0 12k| 0:
10 0 0 : 0 0 | 0: 0 0 0 : 0 0 | 0: 0 0 0 : 0 0 | 0: 0 0 0 : 0 0 | 0: 0 0 0 : 0 0 | 0: 0^C [rootyyzcdb81 ~]#输出字段说明dsk/sda:sda磁盘的读写dsk/sdb: sdb磁盘的读写util: 磁盘利用率百分比3示例3网络性能监控监控指定网卡的网络流量[rootyyzcdb81 ~]# dstat -n -N esn33,total --socket --tcp -net/total- ------sockets------ ----tcp-sockets---- recv send|tot tcp udp raw frg|lis act syn tim clo 0 0 | 1 10 6 0 0| 18 3 0 0 0 60B 634B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0 60B 282B| 1 10 6 0 0| 18 3 0 0 0^C [rootyyzcdb81 ~]#可监控的TCP状态tcp-lis: 监听状态的TCP连接tcp-act: 活跃状态的TCP连接tcp-syn: SYN状态的连接tcp-tim: TIME_WAIT状态的连接4示例4内存与进程监控监控内存使用和进程状态dstat -cms -p --top-cpu --top-mem显示最耗资源的进程most-expensivecpu process|memory process5示例5实时综合监控面板创建全面的系统监控面板下面命令同时显示时间戳、CPU、内存、磁盘、网络、Swap等核心指标并深入监控异步I/O、文件系统、进程通信、锁、原始设备、套接字和TCP/UDP连接等底层系统活动。
dstat -tcmdns --aio --fs --ipc --lock --raw --socket --tcp --udp
高级应用技巧
1数据记录与分析将监控数据保存到CSV文件[rootyyzcdb81 ~]# dstat -tcdnm --output /var/log/dstat.csv 5 ----system---- ----total-cpu-usage---- -dsk/total- -net/total- ------memory-usage----- time |usr sys idl wai hiq siq| read writ| recv send| used buff cach free
14:47:09| 0 0 100 0 0 0|5665B 29k| 0 0 |1542M 208k 5793M 468M
14:47:14| 0 0 100 0 0 0| 0 6554B| 60B 480B|1542M 208k 5793M 468M
14:47:19| 0 0 99 0 0 0| 0 13k| 84B 393B|1542M 208k 5793M 468M
14:47:24| 0 0 100 0 0 0| 0 23k| 60B 378B|1542M 208k 5793M 468M
14:47:29| 0 0 100 0 0 0| 0 6554B| 60B 375B|1542M 208k 5793M 468M
14:47:34| 0 0 100 0 0 0| 0 39k| 60B 381B|1542M 208k 5793M 468M
14:47:39| 0 0 100 0 0 0| 0 13k| 60B 378B|1542M 208k 5793M 468M
14:47:44| 0 0 100 0 0 0| 0 27k| 60B 381B|1542M 208k 5793M 468M
14:47:49| 0 0 100 0 0 0| 0 20k| 60B 381B|1542M 208k 5793M 468M
14:47:54| 0 0 100 0 0 0| 0 24k| 60B 381B|1542M 208k 5793M 468M
14:47:56| 0 0 100 0 0 0| 0 0 | 60B 378B|1542M 208k 5793M 468M^C [rootyyzcdb81 ~]#查看保存的数据[rootyyzcdb81 ~]# cat /var/log/dstat.csv Dstat
0.
2 CSV output Author:,Dag Wieers dagwieers.com,,,,URL:,http://dag.wieers.com/home-made/dstat/ Host:,yyzcdb81,,,,User:,root Cmdline:,dstat -tcdnm --output /var/log/dstat.csv 5,,,,Date:,28 Jan 2026 14:47:09 CST system,total cpu usage,,,,,,dsk/total,,net/total,,memory usage,,, time,usr,sys,idl,wai,hiq,siq,read,writ,recv,send,used,buff,cach,free
14:47:09,
200,
082,
9
678,
019,
0,
021,
5
123,
2
427,
0,
0,
1
0,
2
0,
6
0,
4
0
14:47:14,
051,
051,
9
847,
0,
0,
051,
0,
6
600,
6
0,
4
400,
1
0,
2
0,
6
0,
4
0
14:47:19,
255,
255,
9
491,
0,
0,
0,
0,
1
600,
8
400,
3
200,
1
0,
2
0,
6
0,
4
0
14:47:24,
254,
102,
9
593,
0,
0,
051,
0,
2
600,
6
0,
3
0,
1
0,
2
0,
6
0,
4
0
14:47:29,
204,
051,
9
694,
051,
0,
0,
0,
6
600,
6
0,
3
800,
1
0,
2
0,
6
0,
4
0
14:47:34,
255,
153,
9
592,
0,
0,
0,
0,
4
800,
6
0,
3
200,
1
0,
2
0,
6
0,
4
0
14:47:39,
306,
102,
9
541,
0,
0,
051,
0,
1
200,
6
0,
3
0,
1
0,
2
0,
6
0,
4
0
14:47:44,
153,
102,
9
694,
051,
0,
0,
0,
2
800,
6
0,
3
200,
1
0,
2
0,
6
0,
4
0
14:47:49,
255,
102,
9
643,
0,
0,
0,
0,
2
800,
6
0,
3
200,
1
0,
2
0,
6
0,
4
0
14:47:54,
306,
153,
9
541,
0,
0,
0,
0,
2
800,
6
0,
3
200,
1
0,
2
0,
6
0,
4
0 [rootyyzcdb81 ~]#
2特定时间点监控监控特定时间段每2秒采样共采样30次[rootyyzcdb81 ~]# timeout 60 dstat -cdnm 2 ----total-cpu-usage---- -dsk/total- -net/total- ------memory-usage----- usr sys idl wai hiq siq| read writ| recv send| used buff cach free 0 0 100 0 0 0|5663B 29k| 0 0 |1542M 208k 5793M 468M 0 0 100 0 0 0| 0 17k| 60B 586B|1542M 208k 5793M 468M 0 0 100 0 0 0| 0 25k| 60B 354B|1542M 208k 5793M 468M 0 0 100 0 0 0| 0 6144B| 60B 346B|1542M 208k 5793M 468M 0 0 100 0 0 0| 0 16k| 60B 354B|1542M 208k 5793M 468M 0 0 100 0 0 0| 0 80k| 60B 346B|1542M 208k 5793M 468M 0 0 99 0 0 0| 0 82k| 60B 354B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 16k| 60B 354B|1542M 208k 5793M 467M 0 0 99 0 0 0| 0 186k| 60B 346B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 2048B| 60B 346B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 16k| 60B 354B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 16k| 60B 346B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 0 | 60B 346B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 16k| 60B 354B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 26k| 60B 354B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 0 | 60B 346B|1542M 208k 5793M 467M 0 0 100 0 0 0| 0 26k| 60B 354B|1542M 208k 5793M 467M 1 0 99 0 0 0| 0 2048B| 60B 346B|1542M 208k 5793M 467M^C [rootyyzcdb81 ~]# # 结合时间戳监控 dstat -tcd --epoch
5
3 插件使用查看可用插件[rootyyzcdb81 ~]# dstat --list internal: aio, cpu, cpu24, disk, disk24, disk24old, epoch, fs, int, int24, io, ipc, load, lock, mem, net, page, page24, proc, raw, socket, swap, swapold, sys, tcp, time, udp, unix, vm /usr/share/dstat: battery, battery-remain, cpufreq, dbus, disk-tps, disk-util, dstat, dstat-cpu, dstat-ctxt, dstat-mem, fan, freespace, gpfs, gpfs-ops, helloworld, innodb-buffer, innodb-io, innodb-ops, lustre, memcache-hits, mysql-io, mysql-keys, mysql5-cmds, mysql5-conn, mysql5-io, mysql5-keys, net-packets, nfs3, nfs3-ops, nfsd3, nfsd3-ops, ntp, postfix, power, proc-count, qmail, rpc, rpcd, sendmail, snooze, squid, test, thermal, top-bio, top-bio-adv, top-childwait, top-cpu, top-cpu-adv, top-cputime, top-cputime-avg, top-int, top-io, top-io-adv, top-latency, top-latency-avg, top-mem, top-oom, utmp, vm-memctl, vmk-hba, vmk-int, vmk-nic, vz-cpu, vz-io, vz-ubc, wifi [rootyyzcdb81 ~]#使用MySQL插件监控数据库dstat --mysql5-conn --mysql5-cmds使用Nginx插件监控Web服务器dstat --nginx-req --nginx-stat
4与其他工具结合# 配合watch命令高亮变化 watch -n 1 -d dstat -cd # 通过管道筛选关键信息 dstat -cd | grep -E (usr|idl|read|writ) # 实时监控并触发报警 dstat -cdn 1 | awk $3 90 {print 高CPU使用率警告}
常用场景配置
1 Web服务器监控dstat -tcdn --http --tcp --load --top-io
2
2 数据库服务器监控dstat -tcdnm --io --lock --aio --raw
3
3 实时故障排查dstat -af --top-cpu --top-mem --top-io
1
4 长期性能趋势分析# 后台运行记录性能数据 nohup dstat -tcdnm --output /var/log/perf_$(date %Y%m%d).csv 30 /dev/null
输出字段详解
1 CPU使用率字段usr用户空间CPU使用率sys内核空间CPU使用率idlCPU空闲率waiI/O等待CPU时间hiq硬件中断siq软件中断
2 磁盘I/O字段read磁盘读取速度KB/swrit磁盘写入速度KB/sused磁盘使用百分比
3网络流量字段recv网络接收速度KB/ssend网络发送速度KB/s
4内存字段used已使用内存buff缓冲区内存cach缓存内存free空闲内存
实用技巧与
注意事项# 实用技巧快速检查dstat -a快速查看系统整体状态精确监控使用-C、-D、-N指定特定设备颜色标记红色通常表示高负载绿色表示正常历史对比保存CSV文件用于不同时段性能对比#
注意事项1部分插件需要额外安装依赖2高频率监控如
1秒可能增加系统负载3长期监控需注意日志文件大小4在生产环境使用前建议在测试环境验证# 性能影响监控dstat自身资源消耗开另一个终端pidstat -p $(pgrep dstat) 1
39.