dstat命令
dstat命令介绍
dstat
是 Linux 系统中的一个多功能资源统计工具,属于 dstat
软件包。它可以实时监控系统的 CPU、内存、磁盘 I/O、网络流量等多种资源使用情况,被认为是 vmstat
、iostat
、netstat
和 ifstat
等传统工具的替代品和增强版。dstat
的优势在于它能以直观的表格形式输出数据,支持灵活的选项和插件,能够同时显示多个维度的统计信息,便于系统管理员和开发者进行性能分析和故障排查。
使用方法
在大多数 Linux 发行版中,dstat
需要通过包管理器安装,例如:
- 在 Ubuntu/Debian 上:
sudo apt install dstat
- 在 CentOS/RHEL 上:
sudo yum install dstat
基本语法如下:
dstat [选项] [时间间隔] [次数]
- 时间间隔:以秒为单位,指定刷新频率,默认是 1 秒。
- 次数:指定输出次数,默认无限次(按 Ctrl+C 停止)。
常用选项
-c
:显示 CPU 使用情况。-d
:显示磁盘 I/O 统计。-n
:显示网络统计。-m
:显示内存使用情况。-g
:显示页面(分页)统计。-y
:显示系统统计(如中断和上下文切换)。-t
:显示时间戳。--top-cpu
:显示占用 CPU 最多的进程。--top-mem
:显示占用内存最多的进程。--output 文件名
:将结果输出到 CSV 文件。
示例
- 默认输出(CPU、磁盘、网络、分页和系统统计),每秒刷新:
dstat
监控 CPU 和内存,每 2 秒刷新 5 次:
dstat -cm 2 5显示网络和磁盘统计,并带时间戳:
dstat -dnt查看占用 CPU 和内存最多的进程:
dstat -c –top-cpu -m –top-mem将统计结果保存到 CSV 文件:
dstat -cdm –output stats.csv 2 10
结果字段解释
dstat
的输出是动态表格形式,默认情况下包含多个统计类别。以下是常见选项下的字段含义:
1. 默认输出(dstat
无参数,等同于 -cdngy
)
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
- total-cpu-usage(CPU 使用情况):
- usr:用户态 CPU 使用百分比。
- sys:内核态 CPU 使用百分比。
- idl:空闲 CPU 百分比。
- wai:等待 I/O 的 CPU 百分比。
- stl:被虚拟机偷走的 CPU 时间百分比(虚拟化环境)。
- dsk/total(磁盘 I/O):
- read:每秒从磁盘读取的数据量(单位:B、kB、MB 等)。
- writ:每秒写入磁盘的数据量。
- net/total(网络统计):
- recv:每秒接收的数据量。
- send:每秒发送的数据量。
- paging(分页活动):
- in:每秒页面换入量(从磁盘加载到内存)。
- out:每秒页面换出量(从内存写回磁盘)。
- system(系统统计):
- int:每秒中断次数。
- csw:每秒上下文切换次数。
2. -m
(内存统计)
------memory-usage-----
used buff cach free
- used:已使用的内存量。
- buff:用作缓冲区的内存量。(写缓存)
- cach:用作缓存的内存量。 (读缓存)
- free:空闲内存量。
3. --top-cpu
和 --top-mem
-most-expensive- ----most-memory-intensive----
cpu process proc pid mem
- cpu process:占用 CPU 最多的进程名称。
- proc:占用内存最多的进程名称。
- pid:进程 ID。
- mem:内存占用量(单位:KB、MB 等)。
4. -t
(带时间戳)
----system----
time
- time:当前时间戳,格式通常为
DD-MM HH:MM:SS
。
注意事项
- 默认输出第一行是系统启动以来的平均值,后续行是指定间隔内的实时统计。
- 如果未安装
dstat
,可以用pidstat
或vmstat
作为替代,但功能不如dstat
灵活。 dstat
支持大量插件(如--disk-util
、--freespace
),可通过dstat --list
查看可用插件。