大家好,欢迎来到IT知识分享网。
pidstat
- 报告linux任务的统计数据
格式
pidstat [-d] [-h] [-I] [-l] [-R] [-r] [-s] [-t] [-U [username] ] [-u] [-V] [-v] [-w] [-C comm] [-G process_name] [-p {pid[,...]|SELF|ALL}] [-T {TASK|CHILD|ALL}] [interval[count]]
- 总结来说,这个命令的参数分为如下三部分:
pidstat 1选择进程的选项 2指定要打印的抽样采集的内容 3采样频率次数
- 1 选择要报告的进程、线程,就是过滤掉不关心的进程
-C comm
-G process_name
命令名选择-p {pid ...|SELF|ALL}
进程级别选择-T {TASK|CHILD|ALL}
线程级别选择-U username
选择用户名username下的进程
- 2 指定要打印的内容
- -u cpu使用率
- -d IO统计信息
- -R 实时优先级以及调度策略
- -r 缺页陷入(page faults)以及内存使用率
- -s 栈的使用率
- -t 跟选择的进程相关的线程的统计数据
- -v 部分内核表的值,如fd数和线程数
- -w 进程上下文切换活动
- 3 采样间隔(周期)和采样次数
2 3 就是2秒一次,总共采样3次
描述
- pidstat 命令用于监控当前由linux内核管理的各个任务。
- 如果使用-p指定选择的进程,或者-p ALL选择的所有进程,将这些被选择的进程活动写入到标准输出。
- 不选择任何进程等于指定了
-p ALL
,但是只有活跃的进程(有非0的统计值的进程才是活跃进程)将出现在报告中 - pidstat命令可以用于监控选择的任务的子进程,参考-T选项
interval
指定每次报告之前间隔的秒数,如果为0,表示任务的统计数据都是从系统启动的时候开始的。count
值决定了以interval间隔时间来生成的报告的次数- 如果指定了interval的值但是没有指定count参数,pidstat命令一直持续生成报告。
- 通过使用标志来选择特定任务活动的信息,不指定任务标志仅仅选择CPU活动。
- 不选择任何进程等于指定了
选项
1部分 命令选择
- -C comm
- 仅仅展示命令名中包含comm字符串的任务,这个comm字符串可以是一个正则表达式
- -G process_name
- 仅仅展示命令名中包含有process_name字符串的进程。这个字符串可以是一个正则表达式。
- 如果-t是跟-G一块使用的,那么属于此进程的线程也会被展示(虽然子线程的命令名中国可能没有包含process_name字符串)
- -e program args
- 用给定的参数args执行program,并用pidstat来监控
- 当程序终止的时候pidstat也停止
- -p { pid [, … ]|SELF|ALL}
- 选择要报告统计信息的进程
- pid就是进程标志号
- SELF关键字指明报告的统计信息是pidstat自己的
- ALL关键字指明报告的是这个系统管理的所有的进程的
- -T {TASK | CHILD | ALL}
- 这个选项指定了pidstat命令监控的内容。
- TASK 指定按照单个任务来进行统计报告,这个是默认的选项
- CHILD 指定以进程及其所有子进程作为一个整体来报告
- ALL 就是上面TASK+CHILD的结合,也就是将单个任务 和 此任务及其所有的子任务分别都展示出来
2部分 指定要展示的内容
- -d 报告IO统计信息,会展示下面的值:
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- kB_rd/s 此任务每秒从disk上读取的KiB
- kB_wr/s 此任务每秒已经写入的或者引起写入到disk的KiB
- kB_ccwr/s 此任务取消掉的写入到磁盘的KiB数。当任务截断了一些脏页缓存的时候可能会出现。
- iodelay 被监视任务的块I/O延迟,以时钟周期为单位。此度量标准包括等待同步块I/O完成和交换模块I/O完成所花费的延迟。
- Command 任务的命令名
- -R 报告实时优先级以及调度策略信息,展示下面的值
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- prio 被监控任务的实时优先级
- policy 被监控任务的调度策略
- Command 任务的命令名
- -r 报告缺页陷入(page faults)以及内存使用率
- 当报告单个任务的统计信息
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- minflt/s 任务每秒产生的次缺页次数,这种并不需要从磁盘中加载一个内存页出来
- majflt/s 任务每秒产生的主缺页次数,这种需要从磁盘中加载一个内存页出来
- VSZ Virtual Size 整个进程使用的虚拟内存的大小,单位是KiB
- RSS Resident Set Size 进程使用的非交换物理内存的大小,单位是KiB
- %MEM 任务当前使用的可用物理内存份额。
- Command 任务的命令名
- 当报告任务以及他们的子进程的全局统计信息时
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- minflt-nr 任务及其所有子任务在采样周期内采集到的minor faults次缺页次数。
- majflt-nr 任务及其所有子任务在采样周期内采集到的major faults主缺页次数
- Command 任务的命令名
- 当报告单个任务的统计信息
- -s 栈使用率
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- StkSize 这个任务保留作为栈用的内存大小,但是不一定用了。单位是KiB
- StkRef 这个任务引用的作为栈使用的内存的大小,单位是KiB
- Command 任务的命令名
- -t 展示跟此选择的任务相关的子线程
- TGID 线程组leader的id
- TID 被监控线程的id
- -u 报告cpu使用率
- 当对单个任务报告统计数据的时候,会展示下面的值
- UID 被监控任务的实际用户id
- USER 被监控任务的实际用户名
- PID 被监控任务的id
- %usr 当任务在用户层执行的时候使用CPU的百分比,不论是否有nice优先级。这个字段不包含花在运行一个虚拟处理器上的时间
- %system 当任务在系统层(内核)执行的时候使用CPU的百分比
- %guest 当任务在虚拟机中执行(运行一个虚拟处理器)的时候使用CPU的百分比
- %wait 任务等待去执行的时候花的CPU时间的百分比
- %CPU 这个任务总的CPU时间的百分比。在对称多处理环境中,如果
-I
选项设置了,那么这个任务的CPU使用率将会被除以CPU的总数。 - CPU 这个进程被附加到的处理器的号码
- Command 任务的命令名
- 当对所有的任务以及其子任务报告全局的统计数据时,会展示下面的值
- UID 和其子任务一块被监控的任务的属主的真实用户ID
- USER 和其子任务一块被监控的任务的属主的真实用户名称
- PID 和其子任务一块被监控的任务的标识码
- usr-ms 任务以及其子任务在用户级别(应用程序中)执行的时候,带有或者不带有nice优先级的都算,当然这个是指在interval间隔中采样到的。注意这个字段不包含花在虚拟处理器上的时间
- system-ms 任务以及其子任务在系统级别(内核中)执行的时候花费的ms数,当然这个是指在interval间隔中采样到的
- guest-ms 任务以及其虚拟机中的所有子任务总共花费的ms数
- Command 任务的命令名,这个命令名是跟其子任务一块被监控的
- 当对单个任务报告统计数据的时候,会展示下面的值
- -v 报告一些内核表的值
- UID 和其子任务一块被监控的任务的属主的真实用户ID
- USER 和其子任务一块被监控的任务的属主的真实用户名称
- PID 和其子任务一块被监控的任务的标识码
- threads 跟这个任务关联的线程数
- fd-nr 跟这个任务关联的fd数量
- Command 任务的命令名,这个命令名是跟其子任务一块被监控的
- -w 报告进程切换活动
- UID 和其子任务一块被监控的任务的属主的真实用户ID
- USER 和其子任务一块被监控的任务的属主的真实用户名称
- PID 和其子任务一块被监控的任务的标识码
- cswch/s 每秒执行的任务的自愿上下文切换总数。当任务因其需要的资源不可用而被阻塞时,会发生自愿上下文切换。
- nvswch/s 每秒执行的非自愿上下文切换总数。当任务在其时间片的持续时间内执行,然后被迫放弃处理器时,会发生非自愿上下文切换。
- Command 任务的命令名,这个命令名是跟其子任务一块被监控的
- -H 展示从epoch以来的时间戳
- -h 水平的在单行展示所有的活动,在报告的最后没有平均统计数据。这种是用来让结果容易被其他程序解析的。
- –human 以一种人类可读的格式来打印大小类数据。
- -I 在SMP环境中,指示应将任务的CPU使用率(如选项-u所示)除以处理器总数。
- -l 展示进程的命令名和其所有的参数
- -U [username] 如果指定了username参数,就只展示username这个用户名下的所有的任务。-U会将任务的UID替换成输出实际用户名
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11239.html