概述
pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat manual page
应用
命令格式
pidstat [ -C comm ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { pid [,…] | SELF | ALL } ] [ -r ] [ -t ] [ -T { TASK | CHILD | ALL } ] [ -u ] [ -V ] [ -w ] [ interval [ count ]]
*注意*同样需要注意版本问题请使用前man一下参数,本例是以sysstat9.0.4
选项解释
选项
含义说明
-C comm
显示包含comm字符串的任务.
-d
内核版本2.6+生效。I/O统计报告:会显示字段PID、kB_rd/s、kB_wr/s、kB_ccwr/s、Command
-h
显示所有活动进程在同一行。这是为了使它更容易被其他程序解析
-I
在SMP环境中,执行任务消耗的CPU由所有处理器均分
-l
列出命令所有参数。
-p
{ pid [,…] | SELF | ALL } 统计显示被选择的任务报告.pid是进程标识.SELF关键字标识显示pidstat进程自身报告,ALL关键字显示系统管理的所有任务进程报告
-r
显示缺页错误和内存使用率,当统计单独的进程时会显示字段PID、 minflt/s、majflt/s、VSZ、RSS、Command;当统计全局报告时会显示字段PID、minflt-nr、majflt-nr、Command
-t
显示选择进程相关的线程统计信息,会增加显示字段TGID、TID
-T
{ TASK | CHILD | ALL }
-u
统计CPU使用率.会增加显示PID、%usr、%system、%guest、%CPU、CPU、Command、PID、usr-ms、system-ms、guest-ms、Command
-V
退出时打印版本号.
-w
内核2.6.23+可以使用,报告任务切换活动报告,增加显示字段PID、cswch/s、nvcswch/s、Command
参数解释
选项
含义说明
interval
采样周期
count
采样次数
输出项说明
-d显示字段:
选项
说明
PID
进程标识
kB_rd/s
以kb为单位统计每秒从磁盘读的数量
kB_wr/s
以kb为单位统计每秒写入磁盘的数量
kB_ccwr/s
以kb为单位统计在执行时写入磁盘被取消的数量
Command
拉起进程对应的命令
-r单个任务报告时显示字段:
选项
说明
PID
进程标识
minflt/s
每秒次缺页总数,次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数,不需要从磁盘加载内存页
majflt/s
每秒主缺页总数,当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生,需要从磁盘加载内存页
VSZ
虚拟内存大小:kb为单位统计所有任务使用的虚拟内存总量
RSS
物理内存大小:kb为单位统计所有任务使用的不可交换的物理内存
Command
拉起进程对应的命令
-r全局任务统计报告时显示字段:
选项
说明
PID
进程标识
minflt-nr
在采样周期中统计所有轻微错误和它们的子集
majflt-nr
在采样周期中统计所有严重错误和它们的子集
Command
拉起进程对应的命令包括被监控的子集
-t显示字段
选项
说明
TGID
线程组leader标识
TID
被监控的进程号标识
-u单个任务报告时显示字段:
选项
说明
PID
进程号标识
%usr
用户态执行任务占用CPU的百分比,包括或不包括优化时间,注意不包括运行虚拟处理器时间.
%system
内核态执行任务占用CPU百分比
%guest
虚拟态执行任务占用百分比
%CPU
任务占用CPU的百分比,在SMP环境中,CPU的使用率需要被所有处理器均分
CPU
任务绑定的处理器编号
Command
拉起进程对应的命令
-u全局任务统计报告时显示字段:
选项
说明
PID
进程标识id和被监控的子集id
usr-ms
在统计周期内,用户态任务和其子任务耗时统计(ms),包括或者不包括调优时间,注意不包括运行虚拟处理器时间
system-ms
在统计周期内,内核态任务和其子任务耗时统计(ms)
guest-ms
在统计周期内,虚拟态任务和其子任务耗时统计(ms)
Command
拉起进程对应的命令和其子集名称
-w显示字段
选项
说明
PID
任务ID标识
cswch/s
任务每秒引发的自愿的上下文切换。自愿的上下文切换发生在任务块,因为它需要资源未就绪
nvcswch/s
任务每秒引发的非自愿的上下文切换数量,这种上下文切换会导致正在执行任务的时间片强制放弃当前任务去执行其他任务。
Command
拉起进程对应的命令
应用场景
1、针对特定进程统计(-p)
使用-p选项,我们可以查看特定进程的系统资源使用情况
2、IO情况统计(-d)
使用-d选项,我们可以查看进程IO的统计信息
3、内存使用情况统计(-r)
使用-r选项,pidstat将显示各活动进程的内存使用统计
4、cpu使用情况统计(-u)
使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样
原文链接 欢迎拍砖,未完待续……