pidstat用于监控进程的CPU、内存、线程、设备 IO 等系统资源的使用情况

功能说明:用于监控全部或指定进程的CPU、内存、线程、设备 IO 等系统资源的使用情况。

语  法:pidstat [ options ] [ <interval> [ <count> ] ]

补充说明:pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行 pidstat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat是sysstat性能监控工具包的工具之一,安装sysstat即可得到pidstat。

   项: 

-u           显示各个进程的cpu使用情况

-r           显示各个进程的内存使用情况

-d           显示各个进程的IO使用情况

-p           指定进程号

-w          显示每个进程的上下文切换情况

-t            显示选择任务的线程的统计信息外的额外信息

-V          版本号

-h           以更简洁的方式显示输出数据的表头,以便适应更窄的显示屏幕或终端窗口

-I           在SMP环境,表示任务的CPU使用率/内核数量

-l            显示命令名和所有参数

-T { TASK | CHILD | ALL }        指定报告统计信息的进程的范围:

  • TASK:仅报告特定任务(任务即进程)。
  • CHILD:仅报告子进程的统计信息。这通常用于查看某个进程派生的所有子进程的相关性能数据。
  • ALL:报告所有相关信息,即当前任务及其所有子进程的综合统计信息。这可以用于全面了解进程及其子进程的资源使用情况。

-C <command>         查看对应command进程的状态

   数:

interval         显示间隔,单位s

count            显示次数,默认一直显示

   例:

$ pidstat

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月19日   _x86_64_  (2 CPU)

16时03分44秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

16时03分44秒     0         1    0.00    0.00    0.00    0.00    0.00     0  systemd

16时03分44秒     0         2    0.00    0.00    0.00    0.00    0.00     0  kthreadd

16时03分44秒     0        16    0.00    0.00    0.00    0.00    0.00     0  ksoftirqd/0

16时03分44秒     0        17    0.00    0.00    0.00    0.01    0.00     1  rcu_preempt

对输出信息中的字段的解释:

PID        进程ID

%usr      进程在用户空间占用cpu的百分比

%system       进程在内核空间占用cpu的百分比

%gues          进程在虚拟机占用cpu的百分比

%CPU          进程占用cpu的百分比

CPU             运行当前进程的cpu的编号

Command    当前进程对应的命令

显示所有进程使用cpu的情况:

$ pidstat -u -p ALL

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月19日   _x86_64_  (2 CPU)

16时17分49秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

16时17分49秒     0         1    0.00    0.00    0.00    0.00    0.00     0  systemd

16时17分49秒     0         2    0.00    0.00    0.00    0.00    0.00     0  kthreadd

16时17分49秒     0         3    0.00    0.00    0.00    0.00    0.00     0  pool_workqueue_release

显示pid为1的进程的CPU的使用情况:

$ pidstat -u -p 1

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月19日   _x86_64_  (2 CPU)

16时18分07秒   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command

16时18分07秒     0         1    0.00    0.00    0.00    0.00    0.00     1  systemd

显示各个进程的IO使用情况:

$ pidstat -d

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)       2024年10月19日   _x86_64_  (2 CPU)

16时26分23秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command

16时26分23秒  1000      1606      0.23      0.02      0.02       0  systemd

16时26分23秒  1000      1614      0.00      0.00      0.00       0  pipewire-media-

16时26分23秒  1000      1615      0.00      0.00      0.00       0  pulseaudio

对输出信息中的的字段的解释:

PID               进程id

kB_rd/s        每秒从磁盘读取的KB

kB_wr/s        每秒写入磁盘KB

kB_ccwr/s           任务取消的写入磁盘的KB

COMMAND       当前进程对应的命令

显示每个进程的上下文切换情况:

$ pidstat -w

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox)   2024年10月19日         _x86_64_        (2 CPU)

16时29分11秒   UID       PID   cswch/s nvcswch/s  Command

16时29分11秒     0         1      0.19      0.04  systemd

16时29分11秒     0         2      0.00      0.00  kthreadd

16时29分11秒     0         3      0.00      0.00  pool_workqueue_release

对输出信息中的的字段的解释:

PID               进程id

Cswch/s        每秒主动任务上下文切换数量

Nvcswch/s    每秒被动任务上下文切换数量

Command           当前进程对应的命令

显示线程的统计信息外的其它信息:

$  pidstat -t

Linux 6.8.0-45-generic (Ubuntu22-VirtualBox) 2024年10月19日          _x86_64_     (2 CPU)

16时31分15秒   UID      TGID       TID    %usr %system  %guest   %wait    %CPU   CPU  Command

16时31分15秒     0         1         –    0.00    0.00    0.00    0.00    0.00     0  systemd

16时31分15秒     0         –         1    0.00    0.00    0.00    0.00    0.00     0  |__systemd

16时31分15秒  1000      2722         –    0.04    0.05    0.00    0.00    0.09     0  VBoxClient

16时31分15秒  1000         –      3008    0.00    0.00    0.00    0.00    0.00     1  |__dndHGCM

16时31分15秒  1000         –      3009    0.04    0.04    0.00    0.11    0.09     0  |__dndX11

对输出信息中的的字段的解释:

TGID            主线程的表示

TID              线程id

%usr             进程在用户空间占用cpu的百分比

%system       进程在内核空间占用cpu的百分比

%guest         进程在虚拟机占用cpu的百分比

%CPU          进程占用cpu的百分比

CPU             执行当前进程的cpu的编号

Command    当前进程对应的命令

发表回复

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