功能说明:用于监控全部或指定进程的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 当前进程对应的命令