mpstat
mpstat主要用在当系统变慢,如ssh过去输入命令特别卡,平均负载增大时,我们想判断到底是CPU的使用率增大了,还是IO压力增大的情况。用于分析多CPU的平均负载高的原因,计算机密集导致平均负载高,IO导致平均负载高,等待CPU调度导致平均负载高,搭配其他命令一起分析系统问题
格式:mpstat [选线] [参数] [i nternal] [count]
-P:指定要监控哪个CPU,范围是[0~n-1],ALL表示监控所有CPU
internal:相邻两次采样的间隔时间
count:采样次数
%user 表示用户所使用CPU的百分比
%nice 表示使用nice命令对进程进行降级时CPU的百分比
%sys 表示内核进程使用的CPU百分比
%iowait 表示等待进行I/O所使用的CPU时间百分比
%irq 表示用于处理系统中断的CPU百分比
%soft 表示用于软件中断的CPU百分比
%steal 虚拟机强制CPU等待的时间百分比
%guest 虚拟机占用CPU时间的百分比
%idle CPU的空闲时间的百分比
vmstat
vmstat可用给定时间间隔的服务器的状态值包括CPU的使用率,内存使用,虚拟内存交换情况,IO读写情况。可用查看整机的各个参数使用情况。
格式:vmstat [选项] [刷新延时 刷新次数]
procs
r(运行队列):等待运行的进程数,数量越大,系统越繁忙
b(进程阻塞):不可被唤醒的进程数量,数量越大系统越繁忙
memory
swap:虚拟内存的使用情况,大于0说明你物理内存不足了
free:空闲的物理内存容量
buff:缓冲的内存容量
cache:缓存的内存容量
swap
si:从磁盘中交换到内存中数据的数量
so:从内存中交换到磁盘中数据的数量
这两个数越大,表明需要经常在磁盘和内存之间进行交换,系统性能越差
io
bi:从块设备中读入的数据的总量,单位为块
bo:写入块设备的数据的总量,单位为块
这两个值越大,表示系统的I/O越繁忙
system
in:每秒被中断的进程次数
cs:每秒进行的时间切换次数
这两个值越大,代表系统与接口设备的通信越繁忙
CPU
us:非内核进程消耗CPU运算时间的百分比
sy:内核进程消耗CPU运算时间额百分比
id:空闲CPU的百分比
wa:等待I/O所消耗的CPU百分比
st:被虚拟机盗用的CPU资源
pidstat
pidstat可用于监控全部或指定进程的CPU、内存、IO等系统资源的占用情况
与vmstat可用查询的资源相似,但是相对对于某一个进程进行监控的话,vmstat多少有点吃力,但是pidstat可用很轻松的完成,所以可用根据使用场景,来使用资源监控工具
pidstat [选项] [时间间隔 刷新次数] #如果没有刷新次数就会按时间间隔一直刷新
-u:默认参数,显示各个进程的使用统计
-r:显示各个进程的内存使用情况
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下切换
-t:显示选择任务的线程的统计信息的额外信息
-T{TASK | CHILD | ALL}:TASK表示独立的task(进程任务),CHILD关键字表示报告进程下所有线程统计信息,ALL表示报告独立的task和task下面的所有进程(注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-I:在SMP环境,表示任务的CPU使用率/内核数量
PID:进程ID
%usr:进程在用户空间占用CPU的百分比
%system:进程在内核空间占用CPU的百分比
%guest:进程在虚拟机占用的CPU的百分比
%CPU:进程占用的CPU的百分比
CPU:处理进程的CPU编号
Command:进程对应的命令
iostat
iostat主要用于监控系统设备的IO负载情况,根据这个可用看出当前系统的写入和读取量,CPU负载和磁盘负载
iostat [选项] [时间间隔 次数 ]
-c:显示CPU使用情况
-d:显示磁盘使用情况
-N:显示磁盘阵列信息
-n:显示NFS使用情况
-k:以KB为单位显示
-m:以M为单位显示
-t:报告每秒向终端读取和写入的字符数和CPU的信息
-V:显示版本信息
-x:显示详细信息
-p:[磁盘]显示磁盘和分区的情况
%user:表示用户所使用CPU的百分比
%nice:表示使用nice命令对进程进行降级时CPU的百分比
%system:表示内核进程使用的CPU百分比
%iowait:表示等待进行I/O所使用的CPU时间百分比
%steal:虚拟机强制CPU等待的时间百分比
%idleCPU:的空闲时间的百分比
device:磁盘名称
tps:每秒钟发送到I/O请求数
Blk_read / s:每秒读取的块数
Blk_wrtn / s:每秒写入的块数
Blk_read:读入块的总数
Blk_wrtn:写入块的总数
iotop
用来监视磁盘io使用状况的top类工具,iotop具有于top相似的UI,里面主要显示pid、user、I/O、进程等信息
Total DISK READ:从磁盘中读取数据的总速率
Total DISK WRITE:从磁盘中写入数据的总速率
Actual DISK READ:从磁盘中读取数据的实际速率
Actulal DISK WRITE :从磁盘中写入数据的实际速率
TID:线程ID,按p可转换成进程ID
PRIO:优先级
USER:线程所有者
DISK READ:从磁盘中读取的速率
DISK WRITE:往磁盘里写入的速率
SWAPIN:swap交换百分比
IO>:IO等待所占用的百分比
COMMAND:进程命令
iotop -n 表示n次数在刷新完次数后自动退出
iotop -d 表示在进入iotop后多久刷新一次
iotop -p 1 表示查看1进程和他下面线程的状态的状态