大家好,我是早九晚十二,目前是做运维相关的工作。写博客是为了积累,希望大家一起进步!
dstat是一款非常好用的终端工具,它能够实时监控系统各项资源使用情况,包括 CPU、内存、磁盘、网络等方面,并以不同颜色作为输出,同时支持csv格式序列化输出。
安装方法
yum -y install dstat
命令详解
只列举一些常用的,其余方法可以参照help指令学习。
不带选项参数,默认输出CPU、磁盘、网卡、系统分页活动、系统统计。
[root@master ~]# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read writ| recv send| in out | int csw
4 4 92 0 0 0| 15k 353k| 0 0 | 0 0 | 106k 201k
3 3 94 0 0 0| 144k 846k| 371B 102B| 0 0 | 105k 200k
6 6 87 0 0 0| 0 117k| 186B 886B| 0 0 | 105k 195k
3 3 94 0 0 0| 0 723k| 953B 1140B| 0 0 | 105k 200k
负载与CPU相关
展示系统1分钟、5分钟、15分钟的负载情况
dstat -l
dstat --load
展示系统cpu使用情况、从左到右分别是用户占比、系统占比、剩余占比、等待次数(这四项总和100,与top看的一致,hiq是硬中断次数,siq软中断)
dstat -c
dstat --cpu
展示第一颗与第四颗cpu使用情况
dstat -cC 1,4,total
展示每秒的CPU时钟频率
dstat --snooze
进程相关参数
dstat -p
dstat --proc
展示当前时刻的进程状态:可运行态(就绪态),
无法中断的睡眠态(等待态),新进程,
文档原文为:runnable, uninterruptible, new。
就绪态进程多代表负载较高,配合-l参数确认,
比如run为80,即当前有80个进程等待CPU处理,
等待态进程多代表当前IO可能有问题,
等待态进程是内存中等待非CPU资源的进程,
一般是等待IO,可以根据-c的wai列确认,
进一步根据-g的in列确认是否是内存瓶颈后的恢复期,
配合-s参数查看换页使用情况,-d查看当前bio情况,
如果-d的bio的read和-g的in差不多,
表名当前IO主要是换页到内存加载造成的,
即内存不足后的恢复期,
如果-g和-s表名换页未使用,但是-d居高,
则说明当前有大量进程等待磁盘IO,
使用--top-bio-adv确定bio最高的进程,
如果-d也不高,但是-n较高,说明进程等待网络IO
使用--top-io-adv确定IO最高的进程。
显示系统进程数
dstat --proc-count
展示上下文切换次数
dstat --sys
dstat -y
展示中断状态
dstat -i
dstat --int
展示IPC通信状态
dstat --ipc
展示IPC(进程间通信)状态,
包括msg消息队列 ,sem线程队列,shm共享内存使用
最耗资源统计
最耗CPU
dstat --top-cpu
最耗CPU的详细信息
dstat --top-cpu-adv
耗费CPU最多时间(ms)
dstat --top-cputime
消耗内存最多
dstat --top-mem
内存相关参数
展示内存基本使用情况
dstat -m
dstat --mem
网络相关参数
总体收发状态
dstat -n
dstat --net
展示收发包数量
dstat --net-packets
套接字状态
展示套接字状态,包括tot总数量,tcp套接字数量,udp套接字数量,
raw原始套接字数量,frg(ip-fragments IP碎片)套接字数量。
TCP连接
展示tcp网络连接状态,lis监听的数量,act(established)活动的确立的数量,
synTCP/IP的握手数量,tim(time_wait)发起关闭后的等待关闭态数量,
clo关闭态数量,即命令netstat -tpln对应记录的搂取合并。
UDP连接
展示udp网络连接状态,包括lis监听数量和act活动数量。
硬盘相关参数
展示硬盘基本读写信息
文件系统相关参数
文件系统状态
展示每个文件系统状态,包括打开的文件数和使用的inode数量
展示文件锁状态
展示文件锁状态(posix, flock, read, write):
pos锁数量,lck锁数量,rea读锁数量,wri写锁数量