dstat
是一款在 Linux 操作系统中用于生成系统资源统计数据的强大工具。它结合了 vmstat
、iostat
和 mpstat
的功能。但与传统的 vmstat、iostat、mpstat 等命令相比,dstat提供了一个更加灵活和统一的接口来监测和展示系统性能指标。
该工具的主要特点包括:
- 多维监控:dstat 能够同时展示 CPU、内存、磁盘 I/O、网络流量等多种系统资源的使用情况,而无需切换不同的监控工具。
- 自定义统计组合:用户可以根据需要选择显示特定的统计项目,例如只监控内存使用情况或者网络流量。
- 实时更新:dstat 的输出会实时更新,反映最新的系统状态,对于实时监控非常有用。
- 时间周期设置:可以设置更新频率和时间周期,以便在特定时间间隔内获取数据。
- 输出格式灵活:支持多种输出格式,如 HTML、CSV 等,方便将数据导出到其他应用程序进行分析。
- 扩展性:dstat 允许用户编写自己的插件来扩展其功能,以满足特定的监控需求。
- 易于使用:命令行界面简单直观,即使是初学者也能很快学会如何使用。
- 颜色编码:可选的颜色编码功能可以提高输出的可读性。
安装本文使用的是centos,使用yum进行安装
yum -y install dstat
使用dstat时,可以通过组合不同的选项来获取所需的统计信息。
dstat [options] [--title "TITLE"] [--output file] [--format fmt] [--separator sep] [--prefix pre] [--suffix suf] [--decimals dec] [--colors] [--tzinfo] [--tzinfo-file file]
选项
-h
, --help:显示帮助。-V,
--version:显示版本。-c N
, --cpu=N:显示 N 个 CPU 的统计数据(默认为全部 CPU)。-m
, --mem:显示内存统计数据。-s
, --swap:显示交换空间统计数据。-l
, --load:显示负载平均值。-p
, --proc:进程统计信息(包括可运行的、不可中断的以及新建的进程)。-d
, --disk:显示磁盘 I/O 统计数据。-n
, --network:显示网络统计数据。-t
, --time:输出时间,日-月 时:分:秒。-T
, --epoch:要启用自纪元以来的秒数时间计数器,自 1970 年 1 月 1 日 00:00:00 UTC( Unix 纪元)起经过的秒数,作为时间计量的标准。-C 0,3,total
:选项指定了包括CPU0、CPU3以及总体CPU核心的使用情况。-a
, --all:显示所有可用统计。-i
, --int:中断统计信息。-I 5,10
选项指定了只监控中断线5和10的统计信息。-g
, --page:可以监控与页面交换(也称为分页)相关的统计信息。这包括页面输入(page ins)和页面输出(page outs),它们分别代表从磁盘读取到内存的数据总量和从内存写回磁盘的数据总量。--no-colors
:禁用颜色输出。-f
fmt, --format fmt:自定义输出格式。-S sep
, --separator sep:设置列分隔符。-v
, --vmstat:等同于加参数:-pmgdsc -D total
具体来说:
-p
选项显示进程相关的统计信息,如运行中的进程数和新创建的进程数-m
选项显示内存使用情况,包括缓冲区和缓存的使用情况。-g
选项显示与页面交换(分页)相关的统计信息,如页面输入和页面输出。-d
选项显示磁盘I/O统计信息,包括读写操作的数量和字节数。-s
选项显示系统调用统计信息,如接收和发送的套接字数量。-c
选项显示CPU使用情况统计信息,包括每个CPU核心的使用率和中断数。-D total
选项设置了时间分辨率为“total”,这意味着 dstat 将合并所有核心的CPU统计信息,并显示总体的CPU负载。
使用案例展示:
-
监控CPU和内存使用情况:
dstat -c -m
# dstat -c -m ----total-cpu-usage---- ------memory-usage----- usr sys idl wai hiq siq| used buff cach free 3 3 93 0 0 0| 964M 0 676M 179M 8 7 84 0 0 1| 965M 0 676M 179M 3 3 94 0 0 1| 965M 0 676M 179M 2 3 95 0 0 1| 965M 0 676M 179M 11 2 86 0 0 1| 964M 0 676M 179M
关注指标:CPU使用率、内存使用率、缓冲区使用量、缓存使用量。
-
监控磁盘I/O:
dstat -d -f
#dstat -d -f --dsk/sda-----dsk/sr0-- read writ: read writ 510k 105k: 11B 0 0 28k: 0 0 0 46k: 0 0 0 12k: 0 0 0 46k: 0 0 0 0 : 0 0 0 79k: 0 0 0 24k: 0 0
关注指标:磁盘读写次数、读写字节数
-
监控网络流量:
dstat -n -f
#dstat -n -f -net/ens33- recv send 0 0 180B 218B 254B 170B 1314B 1416B
关注指标:发送和接收的数据包数量、发送和接收的字节数。
-
监控系统中断:
dstat -i
#dstat -i ----interrupts--- 18 19 56 0 11 0 0 5 0 0 5 0 0 5 1 0 15 0 0 5 0
关注指标:每秒中断数、特定中断事件的次数。
-
监控系统负载
dstat -l
#dstat -l ---load-avg--- 1m 5m 15m 0.56 0.60 0.46 0.56 0.60 0.46 0.56 0.60 0.46 0.56 0.60 0.46
关注指标:1分钟、5分钟和15分钟的平均系统负载
-
监控进程状态:
dstat -p
#dstat -p ---procs--- run blk new 0 0 9.3 0 0 20 0 0 1.0 1.0 0 0 0 0 0 0 0 0
关注指标:运行中的进程数、新创建的进程数、终止的进程数。
-
监控虚拟内存和交换空间
dstat -v
#dstat -v ---procs--- ------memory-usage----- ---paging-- -dsk/total- ---system-- ----total-cpu-usage---- run blk new| used buff cach free| in out | read writ| int csw |usr sys idl wai hiq siq 0 0 9.3| 969M 0 679M 172M| 0 0 | 506k 104k|2270 4740 | 3 3 93 0 0 0 0 0 20| 970M 0 679M 171M| 0 0 | 0 48k|2648 5398 | 2 5 93 0 0 1 0 0 1.0| 969M 0 679M 171M| 0 0 | 0 123k|2325 4995 | 6 3 90 0 0 1
关注指标:活动内存量、空闲内存量、页面输入输出次数和字节数。
-
综合监控CPU、内存和磁盘:
dstat -c -m -d
#dstat -c -m -d ----total-cpu-usage---- ------memory-usage----- -dsk/total- usr sys idl wai hiq siq| used buff cach free| read writ 3 3 93 0 0 0| 970M 0 679M 171M| 506k 104k 2 3 95 0 0 1| 970M 0 679M 170M| 0 70k 0 2 98 0 0 0| 970M 0 679M 170M| 0 12k 3 4 93 0 0 1| 970M 0 679M 170M| 0 46k 4 6 89 0 0 1| 970M 0 679M 170M| 0 0 2 4 94 0 0 0| 970M 0 679M 170M| 16k 44k
关注指标:CPU使用率、内存使用率、磁盘读写活动。
-
监控系统中断和网络流量:
dstat -i -n
#dstat -i -n ----interrupts--- -net/total- 18 19 56 | recv send 0 11 0 | 0 0 0 3 0 | 120B 378B 0 5 0 | 180B 278B 0 7 0 | 246B 303B 0 15 0 |1314B 1464B
关注指标:中断事件、网络数据包流量。
-
全面监控系统性能:
dstat --all
#dstat --all ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai hiq siq| read writ| recv send| in out | int csw 3 3 93 0 0 0| 505k 104k| 0 0 | 0 0 |2270 4742 6 6 87 0 0 1| 0 67k| 246B 908B| 0 0 |3498 7301 1 2 96 0 0 1| 0 52k| 254B 362B| 0 0 |2613 5543 1 2 97 0 0 0| 0 46k| 120B 362B| 0 0 |2375 506
关注指标:CPU、内存、磁盘、网络、中断和VMSTAT的所有相关指标。