pidstat命令用法

pidstat命令用法文章目录pidstat格式描述选项1部分命令选择2部分指定要展示的内容pidstat报告linux任务的统计数据格式pidstat[-d][-h][-I][-l][-R][-r][-s][-t][-U[username]][-u][-V][-v][-w][-Ccomm][-Gprocess_name][-p{pid[,…]|SELF|A…

大家好,欢迎来到IT知识分享网。pidstat命令用法

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

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信