CPU监控命令之dstat命令
1概述:
dstat是可以替代vmstat,iostat,netstat,ifstat的综合型替代品。同时去掉了他们的一些限制并加入了一些额外的特性,更多的组件和灵活性
dstat允许你实时查看系统资源的概要。例如,你能与IDE控制器的中断组合来对比磁盘利用率,或通过磁盘吞吐量来对比网络的带宽数量
2安装方法:
Ubuntu/Mint和Debin系统:
本地软件库中有相关安装包,你可以用下面命令安装:
# sudo apt-get install dstat
RHEL/Centos和Fedora系统:
你可以在romforge软件库中添加有相关安装包,参照指导,使用如下命令很简单就能进行安装:
# yum install dstat
3常用命令格式:
dstat [-afv] [options..] [delay [count]]
4命令参数:
-c cpu是也,显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息 -C 当有多个CPU时候,此参数可按需分别显示cpu状态 -d disk是也,显示磁盘读写数据大小 -D hda and total -n net 显示网络状态 -N net 有多块网卡时,指定要显示的网卡 -l load average 显示系统负载情况 -m memory 显示内存使用情况 -g page 显示页面使用情况 -p process 显示进程状态 -s swap 显示交换分区使用情况 -S 类似D/N -r I/O请求情况 -y system status --ipc 显示ipc消息队列,信号等信息 --socket 用来显示tcp udp端口状态 -a all 此为默认选项 等同于 -cdngy -v vmstat 等同于 -pmgdsc -D total --output 文件 此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。
5使用实例:
01
实例1:
命令:查看cpu使用情况:
dstat -c
输出:
说明:
usr: 用户进程消耗的CPU时间百分比
usr的值比较高时,说明用户进程消耗的CPU时间多,若长期超过50%的使用,需要考虑优化程序算法或 者进行加速。
sys: 内核进程消耗的CPU时间百分比。sys的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,需要检查原因。
idl: CPU处在空闲状态时间百分比
wai: IO等待消耗的CPU时间百分比。wa的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
hiq: 硬中断次数。
siq: 软中断次数。
02
实例2:
命令:查看全部内存使用情况:
dstat -m
输出:
说明:
used: 使用的物理内存值。
buff: buffer cache的内存,对块设备的读写进行缓冲。
cache: page cache的内存, 文件系统的cache。若cache的值大说明cache住的文件数多,若频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。
free: 空闲的物理内存。
03
实例3:
命令:查看系统的网络状态
dstat -n
输出:
04
实例4:
命令:查看系统的负载情况
dstat -l
输出:
05
实例5:
命令:查看系统的进程信息
dstat -p
输出:
06
实例6:
命令:查看系统的I/O请求情况
dstat -r
输出:
dstat的功能非常强大,除了上述常用用法外,更多功能大家自己研究
6特性:
- 结合了vmstat,iostat,ifstat,netstat以及更多的信息
- 实时显示统计情况
- 在分析和排障时可以通过启用监控项并排序
- 模块化设计
- 使用python编写的,更方便扩展现有的工作任务
- 容易扩展和添加你的计数器(请为此做出贡献)
- 包含的许多扩展插件充分说明了增加新的监控项目是很方便的
- 可以分组统计块设备/网络设备,并给出总数
- 可以显示每台设备的当前状态
- 极准确的时间精度,即便是系统负荷较高也不会延迟显示
- 显示准确地单位和和限制转换误差范围
- 用不同的颜色显示不同的单位
- 显示中间结果延时小于1秒
- 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形