dstat命令

dstat命令介绍

dstat 是 Linux 系统中的一个多功能资源统计工具,属于 dstat 软件包。它可以实时监控系统的 CPU、内存、磁盘 I/O、网络流量等多种资源使用情况,被认为是 vmstatiostatnetstatifstat 等传统工具的替代品和增强版。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 文件。

示例

  1. 默认输出(CPU、磁盘、网络、分页和系统统计),每秒刷新:
    dstat

9fb23759b375f63df0cb57c13f80fd5e.png

  1. 监控 CPU 和内存,每 2 秒刷新 5 次:
    dstat -cm 2 5

  2. 显示网络和磁盘统计,并带时间戳:
    dstat -dnt

  3. 查看占用 CPU 和内存最多的进程:
    dstat -c –top-cpu -m –top-mem

  4. 将统计结果保存到 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,可以用 pidstatvmstat 作为替代,但功能不如 dstat 灵活。
  • dstat 支持大量插件(如 --disk-util--freespace),可通过 dstat --list 查看可用插件。