Linux常用命令学习笔记:dstat

一、命令简介

dstat命令是 Linux 系统中功能强大的系统资源统计工具,可以实时监控 CPU、内存、磁盘、网络、系统负载等多种性能指标。它结合了 vmstat、iostat、netstat、ifstat 等工具的功能,以彩色表格形式直观展示系统性能数据,是系统管理员进行性能监控和故障排查的得力助手。

二、安装方法

dstat 不是所有 Linux 发行版默认安装的工具,需要手动安装:

# Ubuntu/Debian 系统
sudo apt-get install dstat

# CentOS/RHEL 系统
sudo yum install dstat

# Fedora 系统
sudo dnf install dstat

# Arch Linux 系统
sudo pacman -S dstat

三、基本语法

dstat [选项] [时间间隔] [刷新次数]

权限要求:普通用户即可使用,无需特殊权限。

四、常用选项详解

4.1 核心选项

选项功能说明示例
-c显示 CPU 使用率dstat -c
-d显示磁盘 I/O 统计dstat -d
-m显示内存使用情况dstat -m
-n显示网络 I/O 统计dstat -n
-p显示进程统计dstat -p
-r显示 I/O 请求统计dstat -r
-s显示交换分区使用dstat -s
-y显示系统统计dstat -y
-g显示页面调度统计dstat -g
-l显示系统负载dstat -l
-t显示时间戳dstat -t
-f显示文件系统统计dstat -f

4.2 组合选项

选项功能说明示例
-a显示所有统计(相当于 -cdngy)dstat -a
--top-cpu显示 CPU 使用率最高的进程dstat --top-cpu
--top-io显示 I/O 使用率最高的进程dstat --top-io
--top-mem显示内存使用率最高的进程dstat --top-mem
--top-latency显示延迟最高的进程dstat --top-latency
--output FILE将输出保存到文件dstat --output dstat.csv

4.3 输出控制选项

选项功能说明示例
-C 0,1,total显示指定 CPU 核心的统计dstat -C 0,1,total
-D sda,sdb,total显示指定磁盘的统计dstat -D sda,sdb,total
-N eth0,eth1,total显示指定网卡的统计dstat -N eth0,eth1,total
--noheaders不显示头部信息dstat --noheaders
--nocolor禁用彩色输出dstat --nocolor
--noupdate禁用自动更新dstat --noupdate
--integer显示整数而不是小数dstat --integer

五、实际应用场景

5.1 基本监控

# 显示 CPU、磁盘、网络、系统负载等核心指标(默认)
dstat

# 每 2 秒刷新一次,共显示 5 次
dstat 2 5

# 显示所有统计信息
dstat -a

5.2 CPU 监控

# 显示 CPU 使用率
dstat -c

# 显示指定 CPU 核心的统计
dstat -c -C 0,1,total

# 显示 CPU 使用率最高的进程
dstat --top-cpu

5.3 内存监控

# 显示内存使用情况
dstat -m

# 显示内存使用率最高的进程
dstat --top-mem

5.4 磁盘 I/O 监控

# 显示磁盘 I/O 统计
dstat -d

# 显示指定磁盘的统计
dstat -d -D sda,sdb,total

# 显示 I/O 使用率最高的进程
dstat --top-io

5.5 网络监控

# 显示网络 I/O 统计
dstat -n

# 显示指定网卡的统计
dstat -n -N eth0,eth1,total

5.6 进程监控

# 显示进程统计
dstat -p

# 显示系统负载
dstat -l

# 显示系统统计
dstat -y

5.7 组合监控

# 同时监控 CPU、内存、磁盘、网络
dstat -c -m -d -n

# 监控所有统计并保存到文件
dstat -a --output dstat.log 2 10

六、输出字段解释

6.1 CPU 统计(-c)

字段说明
usr用户空间 CPU 使用率
sys内核空间 CPU 使用率
idlCPU 空闲率
waiI/O 等待时间
hiq硬件中断
siq软件中断

6.2 内存统计(-m)

字段说明
used已使用内存
buff缓冲区内存
cach缓存内存
free空闲内存

6.3 磁盘统计(-d)

字段说明
read磁盘读取速度
writ磁盘写入速度

6.4 网络统计(-n)

字段说明
recv网络接收速度
send网络发送速度

6.5 系统统计(-y)

字段说明
int中断次数
csw上下文切换次数

七、高级用法

7.1 自定义输出格式

# 自定义显示字段
dstat -c -d -n -m -p -r -s -g -l -t

# 显示时间戳和系统负载
dstat -t -l

7.2 输出到文件

# 将输出保存到 CSV 文件
dstat -a --output dstat.csv 2 10

# 实时监控并记录到文件
dstat -a > dstat.log

7.3 后台监控

# 后台运行 dstat 并记录到文件
nohup dstat -a 2 > dstat.log &

7.4 与其他命令结合

# 结合 grep 过滤特定信息
dstat -a | grep "sda"

# 结合 awk 提取特定字段
dstat -c 2 5 | awk '/usr/ {print $1}'

八、注意事项

  1. 权限要求:dstat 需要读取 /proc 文件系统,普通用户即可使用
  2. 性能影响:频繁刷新(如间隔小于 1 秒)可能会影响系统性能
  3. 输出格式:默认以彩色表格形式显示,适合终端查看
  4. 数据精度:对于高精度监控需求,建议使用更专业的工具(如 sysstat)
  5. 虚拟化环境:在虚拟化环境中,某些统计可能不准确

九、与相关工具对比

工具特点适用场景
dstat多功能、彩色输出、实时监控综合性能监控、故障排查
vmstat虚拟内存统计内存和 CPU 监控
iostat磁盘 I/O 统计磁盘性能分析
netstat网络连接统计网络连接监控
top/htop进程级监控进程资源使用分析

十、总结

dstat 命令是 Linux 系统管理员进行性能监控的强大工具,通过组合不同的选项,可以灵活监控 CPU、内存、磁盘、网络等多种系统资源。其彩色表格输出和实时刷新功能,使得系统性能状态一目了然。无论是日常监控还是故障排查,dstat 都是不可或缺的工具之一。


作 者:南烛
链 接:https://www.itnotes.top/archives/695
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇