目录

5.4 pidstat

pidstat 命令

pidstat

pidstat options [ interval [ count ]]

  • 作用: 监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况
  • 内容参数:
    • -u:默认的参数,显示各个进程的cpu使用统计
    • -r:显示各个进程的内存使用统计
    • -d:显示各个进程的IO使用情况
    • -w:显示每个进程的上下文切换情况
    • -t:显示选择任务的线程的统计信息外的额外信息,显示线程统计信息时,必须使用
  • 过滤参数:
    • -l:显示命令名和所有参数
    • -p:指定进程号
    • -T { TASK | CHILD | ALL } 这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。 注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。

pid -u

1
2
3
4
5
6
 pidstat -u 2 1
Linux 3.10.0-862.el7.x86_64 (ZS-ISP) 	03/10/2020 	_x86_64_	(1 CPU)

04:34:07 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
04:34:09 PM     0       926    0.51    0.00    0.00    0.51     0  python
04:34:09 PM     0      1100    0.51    0.00    0.00    0.51     0  docker-containe

输出:

  • UID: real user id
  • PID: 进程ID
  • %usr: 用户态 CPU 使用率,包括以低优先级运行的CPU时间(nice 时间),但不包活运行虚拟化程序的时间
  • %system: 内核态 CPU 使用率
  • %guest: 运行虚拟化程序的 CPU 使用率
  • %CPU: 总的 CPU 占用率
  • CPU: Processor number to which the task is attached.
  • Command: 进程的启动命令

pidstat -r

1
2
3
4
5
6
7
pidstat -r 2 1
Linux 3.10.0-862.el7.x86_64 (ZS-ISP) 	03/10/2020 	_x86_64_	(1 CPU)

04:44:53 PM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
04:44:55 PM     0       926      0.51      0.00  784756  37600   0.23  python
04:44:55 PM  1000      3648     12.76      0.00 1132080 118140   0.73  node
04:44:55 PM     0      8343    297.96      0.00  108496   1228   0.01  pidstat

输出:

  • minflt/s: 每秒次缺页异常数
  • majflt/s: 每秒主缺页异常书
  • VSZ: 虚拟内存大小
  • RSS: 实际占用的物理内存大小
  • %MEM: 物理内存占用百分比

pidstat -d

1
2
3
4
5
6
pidstat -d 2 1
Linux 3.10.0-862.el7.x86_64 (ZS-ISP) 	03/10/2020 	_x86_64_	(1 CPU)

04:47:46 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
04:47:48 PM     0       923      0.00      2.02      0.00  python
04:47:48 PM  1000      2994      0.00      6.06      0.00  java

输出:

  • kB_rd/s: 读请求速率,单位KB/s
  • kB_wr/s: 写请求速率,单位KB/s
  • kB_ccwr/s: 任务取消的写入磁盘的KB。当任务截断脏页时会发生

pidstat -w

1
2
3
4
5
6
7
pidstat -w 2 1
Linux 3.10.0-862.el7.x86_64 (ZS-ISP) 	03/10/2020 	_x86_64_	(1 CPU)

04:52:37 PM   UID       PID   cswch/s nvcswch/s  Command
04:52:39 PM     0         3      5.08      0.00  ksoftirqd/0
04:52:39 PM     0         9     92.39      0.00  rcu_sched
04:52:39 PM     0        11      0.51      0.00  watchdog/0

输出:

  • cswch/s: 每秒主动任务上下文切换数量
  • nvcswch/s: 每秒被动任务上下文切换数量