Linux

Linux环境下pidstat使用小结

一 什么是pidstat

pidstat用于查看定位进程性能的工具。

二 如何安装和使用pidstat

它是位于sysstat工具包中的一个命令行工具,通过在Linux上安装sysstat工具包来安装pidstat。

1 CentOS/RHEL安装方式:yum install sysstat;

[root@test-74 ~]# uname  -rm
3.10.0-327.el7.x86_64 x86_64
[root@test-74 ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[root@test-74 ~]# yum install sysstat -y
已加载插件:fastestmirror
kubernetes/signature                                                                                                                                                                                                     |  844 B  00:00:00     
从 https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg 检索密钥
从 https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 检索密钥
kubernetes/signature                                                                                                                                                                                                     | 1.4 kB  00:00:00 !!! 
https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for kubernetes
正在尝试其它镜像。
Loading mirror speeds from cached hostfile
 * base: mirrors.dgut.edu.cn
 * epel: mirror.sjtu.edu.cn
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.dgut.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 sysstat.x86_64.0.10.1.5-19.el7 将被 安装
--> 解决依赖关系完成
​
依赖关系解决
​
================================================================================================================================================================================================================================================
 Package                                                  架构                                                    版本                                                              源                                                     大小
================================================================================================================================================================================================================================================
正在安装:
 sysstat                                                  x86_64                                                  10.1.5-19.el7                                                     base                                                  315 k
​
事务概要
================================================================================================================================================================================================================================================
安装  1 软件包
​
总下载量:315 k
安装大小:1.1 M
Downloading packages:
sysstat-10.1.5-19.el7.x86_64.rpm                                                                                                                                                                                         | 315 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : sysstat-10.1.5-19.el7.x86_64                                                                                                                                                                                                1/1 
  验证中      : sysstat-10.1.5-19.el7.x86_64                                                                                                                                                                                                1/1 
​
已安装:
  sysstat.x86_64 0:10.1.5-19.el7                                                                                                                                                                                                                
​
完毕!
[root@test-74 ~]# 

2 Ubuntu安装:apt install sysstat;

root@iZwz96377ws99tjeva00kcZ:~# uname -rm
4.15.0-117-generic x86_64
root@iZwz96377ws99tjeva00kcZ:~# lsb_release -a
LSB Version:    core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:        18.04
Codename:       bionic
root@iZwz96377ws99tjeva00kcZ:~# apt install sysstat
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  isag
The following NEW packages will be installed:
  sysstat
0 upgraded, 1 newly installed, 0 to remove and 207 not upgraded.
Need to get 295 kB of archives.
After this operation, 1,196 kB of additional disk space will be used.
Get:1 http://mirrors.cloud.aliyuncs.com/ubuntu bionic-updates/main amd64 sysstat amd64 11.6.1-1ubuntu0.1 [295 kB]
Fetched 295 kB in 0s (3,001 kB/s)
Preconfiguring packages ...
Selecting previously unselected package sysstat.
(Reading database ... 112649 files and directories currently installed.)
Preparing to unpack .../sysstat_11.6.1-1ubuntu0.1_amd64.deb ...
Unpacking sysstat (11.6.1-1ubuntu0.1) ...
Setting up sysstat (11.6.1-1ubuntu0.1) ...
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode
Processing triggers for systemd (237-3ubuntu10.42) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
root@iZwz96377ws99tjeva00kcZ:~# 

3 使用方式:直接在命令行上执行pidstat即可使用

root@iZwz96377ws99tjeva00kcZ:~# pidstat 
Linux 4.15.0-117-generic (iZwz96377ws99tjeva00kcZ)      04/21/2022      _x86_64_        (1 CPU)
​
03:35:40 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
03:35:40 PM     0         1    0.00    0.00    0.00    0.00    0.00     0  systemd
03:35:40 PM     0         2    0.00    0.00    0.00    0.00    0.00     0  kthreadd
03:35:40 PM     0         7    0.00    0.00    0.00    0.00    0.00     0  ksoftirqd/0
03:35:40 PM     0         8    0.00    0.01    0.00    0.00    0.01     0  rcu_sched
03:35:40 PM     0        11    0.00    0.00    0.00    0.00    0.00     0  watchdog/0
03:35:40 PM     0        17    0.00    0.00    0.00    0.00    0.00     0  khungtaskd
03:35:40 PM     0        22    0.00    0.00    0.00    0.00    0.00     0  khugepaged
03:35:40 PM     0        34    0.00    0.00    0.00    0.00    0.00     0  kswapd0
03:35:40 PM     0       173    0.00    0.00    0.00    0.00    0.00     0  kworker/0:1H
03:35:40 PM     0       175    0.00    0.00    0.00    0.00    0.00     0  jbd2/vda1-8
03:35:40 PM     0       223    0.00    0.00    0.00    0.00    0.00     0  systemd-journal
03:35:40 PM     0       245    0.00    0.00    0.00    0.00    0.00     0  systemd-udevd
03:35:40 PM   100       467    0.00    0.00    0.00    0.00    0.00     0  systemd-network
03:35:40 PM   101       469    0.00    0.00    0.00    0.00    0.00     0  systemd-resolve
03:35:40 PM     0       484    0.00    0.00    0.00    0.00    0.00     0  atd
03:35:40 PM     0       492    0.00    0.00    0.00    0.00    0.00     0  php-fpm7.2
03:35:40 PM     0       495    0.00    0.00    0.00    0.00    0.00     0  systemd-logind
03:35:40 PM     0       497    0.00    0.00    0.00    0.00    0.00     0  networkd-dispat
03:35:40 PM   102       509    0.00    0.00    0.00    0.00    0.00     0  rsyslogd
03:35:40 PM     0       524    0.00    0.00    0.00    0.00    0.00     0  cron
03:35:40 PM     0       530    0.00    0.00    0.00    0.00    0.00     0  accounts-daemon
03:35:40 PM   103       569    0.00    0.00    0.00    0.00    0.00     0  dbus-daemon
03:35:40 PM   108       584    0.00    0.00    0.00    0.00    0.00     0  chronyd
03:35:40 PM     0       610    0.00    0.00    0.00    0.00    0.00     0  sshd
03:35:40 PM    33       641    0.01    0.00    0.00    0.00    0.01     0  nginx
03:35:40 PM   109       663    0.06    0.02    0.00    0.00    0.08     0  mysqld
03:35:40 PM     0       996    0.02    0.01    0.00    0.02    0.03     0  AliSecGuard
03:35:40 PM     0      5716    0.00    0.00    0.00    0.00    0.00     0  AliYunDunUpdate
03:35:40 PM     0      5744    0.04    0.04    0.00    0.00    0.08     0  AliYunDun
03:35:40 PM     0     12582    0.00    0.00    0.00    0.00    0.00     0  kworker/0:0
03:35:40 PM    33     13410    0.00    0.00    0.00    0.00    0.00     0  php-fpm7.2
03:35:40 PM    33     13411    0.00    0.00    0.00    0.00    0.00     0  php-fpm7.2
03:35:40 PM    33     13412    0.00    0.00    0.00    0.00    0.00     0  php-fpm7.2
03:35:40 PM     0     15115    0.00    0.00    0.00    0.00    0.00     0  sshd
03:35:40 PM     0     15162    0.00    0.00    0.00    0.00    0.00     0  bash
03:35:40 PM     0     15732    0.00    0.00    0.00    0.00    0.00     0  bash
03:35:40 PM     0     17189    0.00    0.00    0.00    0.00    0.00     0  kworker/u2:2
03:35:40 PM     0     17284    0.00    0.00    0.00    0.00    0.00     0  kworker/u2:1
03:35:40 PM     0     17329    0.00    0.00    0.00    0.00    0.00     0  kworker/u2:4
03:35:40 PM     0     24212    0.02    0.01    0.00    0.00    0.03     0  containerd
03:35:40 PM     0     24594    0.01    0.00    0.00    0.00    0.01     0  dockerd
03:35:40 PM     0     31598    0.03    0.02    0.00    0.00    0.04     0  aliyun-service
03:35:40 PM     0     31790    0.00    0.01    0.00    0.00    0.01     0  assist_daemon
root@iZwz96377ws99tjeva00kcZ:~# 

三 pidstat有哪些功能

通过pidstat可以查看监控进程的:

1 CPU资源使用情况:pidstat -u 1

[root@test-74 ~]# pidstat -u 1
Linux 3.10.0-327.el7.x86_64 (test-74)   2022年04月21日  _x86_64_        (2 CPU)
​
15时38分08秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
​
15时38分09秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
15时38分10秒     0      5554    1.00    0.00    0.00    1.00     0  containerd
15时38分10秒     0     19391    0.00    1.00    0.00    1.00     1  pidstat
​
15时38分10秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
15时38分11秒     0     14779    1.00    0.00    0.00    1.00     0  prometheus
15时38分11秒     0     19391    0.00    1.00    0.00    1.00     1  pidstat
​
15时38分11秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
15时38分12秒     0      5554    0.00    1.00    0.00    1.00     0  containerd
15时38分12秒     0     14779    2.00    0.00    0.00    2.00     0  prometheus
15时38分12秒     0     19391    1.00    1.00    0.00    2.00     1  pidstat
^C
​
平均时间:   UID       PID    %usr %system  %guest    %CPU   CPU  Command
平均时间:     0      5554    0.25    0.25    0.00    0.50     -  containerd
平均时间:     0     14779    0.75    0.00    0.00    0.75     -  prometheus
平均时间:     0     19391    0.25    0.75    0.00    1.00     -  pidstat
[root@test-74 ~]# 

2 内存使用情况:pidstat -r 1;

[root@test-74 ~]# pidstat -r 1
Linux 3.10.0-327.el7.x86_64 (test-74)   2022年04月21日  _x86_64_        (2 CPU)
​
15时38分30秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15时38分31秒   502       799      0.99      0.00   18432    796   0.02  zabbix_agentd
15时38分31秒     0     19392    109.90      0.00  108132   1056   0.03  pidstat
​
15时38分31秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15时38分32秒   502       799      1.00      0.00   18432    796   0.02  zabbix_agentd
15时38分32秒     0     19392    125.00      0.00  108132   1132   0.03  pidstat
​
15时38分32秒   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
15时38分33秒   502       799      1.00      0.00   18432    796   0.02  zabbix_agentd
15时38分33秒     0     19392    106.00      0.00  108132   1132   0.03  pidstat
^C
​
平均时间:   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
平均时间:   502       799      1.00      0.00   18432    796   0.02  zabbix_agentd
平均时间:     0     19392    113.62      0.00  108132   1107   0.03  pidstat
[root@test-74 ~]# 

3 进程上下文切换情况:pidstat -w 1;

[root@test-74 ~]# pidstat -w 1
Linux 3.10.0-327.el7.x86_64 (test-74)   2022年04月21日  _x86_64_        (2 CPU)
​
15时38分49秒   UID       PID   cswch/s nvcswch/s  Command
15时38分50秒     0        11     21.57      0.00  rcu_sched
15时38分50秒     0        12      9.80      0.00  rcuos/0
15时38分50秒     0        13      5.88      0.00  rcuos/1
15时38分50秒     0        17      0.98      0.00  ksoftirqd/1
15时38分50秒   502       799      0.98      0.98  zabbix_agentd
15时38分50秒   502       803      0.98      0.00  zabbix_agentd
15时38分50秒     0      2216      3.92      0.00  kworker/0:1
15时38分50秒     0     19030      1.96      0.00  kworker/u4:2
15时38分50秒     0     19326      0.98      0.00  kworker/1:2
15时38分50秒     0     19345      2.94      0.00  kworker/1:1
15时38分50秒     0     19393      0.98      1.96  pidstat
​
15时38分50秒   UID       PID   cswch/s nvcswch/s  Command
15时38分51秒     0        11      9.00      0.00  rcu_sched
15时38分51秒     0        12      6.00      0.00  rcuos/0
15时38分51秒   502       799      1.00      0.00  zabbix_agentd
15时38分51秒   502       803      1.00      0.00  zabbix_agentd
15时38分51秒     0      2216     73.00      0.00  kworker/0:1
15时38分51秒     0     14683     72.00      0.00  sshd
15时38分51秒     0     19030      1.00      0.00  kworker/u4:2
15时38分51秒     0     19345      1.00      0.00  kworker/1:1
15时38分51秒     0     19393      1.00     72.00  pidstat
^C
​
平均时间:   UID       PID   cswch/s nvcswch/s  Command
平均时间:     0        11     15.35      0.00  rcu_sched
平均时间:     0        12      7.92      0.00  rcuos/0
平均时间:     0        13      2.97      0.00  rcuos/1
平均时间:     0        17      0.50      0.00  ksoftirqd/1
平均时间:   502       799      0.99      0.50  zabbix_agentd
平均时间:   502       803      0.99      0.00  zabbix_agentd
平均时间:     0      2216     38.12      0.00  kworker/0:1
平均时间:     0     14683     35.64      0.00  sshd
平均时间:     0     19030      1.49      0.00  kworker/u4:2
平均时间:     0     19326      0.50      0.00  kworker/1:2
平均时间:     0     19345      1.98      0.00  kworker/1:1
平均时间:     0     19393      0.99     36.63  pidstat
[root@test-74 ~]# 

4 磁盘使用情况:pidstat -d 1

[root@test-74 ~]# pidstat -d 1
Linux 3.10.0-327.el7.x86_64 (test-74)   2022年04月21日  _x86_64_        (2 CPU)
​
15时39分15秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
​
15时39分16秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
​
15时39分17秒   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
^C
​
平均时间:   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
[root@test-74 ~]# 

其中命令行中附加的数字1表示的是每间隔1秒输出一次统计信息。

更为详细的使用信息,可以通过man pidstat获取帮助。

四 top命令可以看到进程的CPU利用率,为什么还需要pidstat查看进程的CPU利用信息

因为通过top看到的关于进程的CPU使用率信息,其实包含了进程在用户空间的CPU使用率情况,以及内核空间的CPU使用率,还有通过系统调用过程中产生的CPU使用情况的汇总。不够直观的看出进程消耗的CPU到底是在用户空间还是内核空间,结果就是不太容易定位进程的CPU消耗在哪个环节。

于是,人们引入了新的工具pidstat,通过它可以看到进程的CPU消耗在哪个部分。

1 多进程竞争CPU的场景

这里,通过一个阿里云单核CPU ECS测试演示。session 1执行stress模拟多进程竞争CPU的场景,开启4个进程,持续运行300秒。

root@iZwz96377ws99tjeva00kcZ:~# stress -c 4 -t 300
stress: info: [18161] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd

如下看到,单核CPU,开启4个进程,这样它们就会占满CPU资源。每个进程分别消耗了25%左右的CPU。且,系统的整体CPU利用率99.3%,几乎全部用满。但是,看不出来进程的CPU使用究竟消耗在哪个具体环节。

root@iZwz96377ws99tjeva00kcZ:~# top
top - 15:56:10 up 154 days,  5:18,  2 users,  load average: 0.62, 0.13, 0.04
Tasks:  89 total,   5 running,  54 sleeping,   0 stopped,   0 zombie
%Cpu(s): 99.3 us,  0.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  1957764 total,   240648 free,   510404 used,  1206712 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1170812 avail Mem 
​
  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                                                     
18163 root      20   0    8240     96      0 R 24.9  0.0   0:01.79 stress                                                                                                                                                                      
18162 root      20   0    8240     96      0 R 24.6  0.0   0:01.78 stress                                                                                                                                                                      
18164 root      20   0    8240     96      0 R 24.6  0.0   0:01.78 stress                                                                                                                                                                      
18165 root      20   0    8240     96      0 R 24.3  0.0   0:01.78 stress                                                                                                                                                                      
 5744 root      10 -10  165144  29436  10280 S  0.7  1.5 180:51.55 AliYunDun                                                                                                                                                                   
    1 root      20   0  225368   9000   6612 S  0.0  0.5   5:54.21 systemd

我们,接下来,通过pidstat来查看进程的CPU开销情况。如下所示:

root@iZwz96377ws99tjeva00kcZ:~# pidstat -u 1
Linux 4.15.0-117-generic (iZwz96377ws99tjeva00kcZ)      04/21/2022      _x86_64_        (1 CPU)
​
03:59:14 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
03:59:15 PM     0      5744    0.97    0.97    0.00    0.00    1.94     0  AliYunDun
03:59:15 PM     0     18162   24.27    0.00    0.00   74.76   24.27     0  stress
03:59:15 PM     0     18163   23.30    0.00    0.00   73.79   23.30     0  stress
03:59:15 PM     0     18164   24.27    0.00    0.00   73.79   24.27     0  stress
03:59:15 PM     0     18165   23.30    0.00    0.00   74.76   23.30     0  stress
03:59:15 PM     0     31790    0.00    0.97    0.00    0.00    0.97     0  assist_daemon
​
03:59:15 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
03:59:16 PM   109       663    1.00    0.00    0.00    0.00    1.00     0  mysqld
03:59:16 PM     0      5744    1.00    1.00    0.00    0.00    2.00     0  AliYunDun
03:59:16 PM     0     15115    0.00    1.00    0.00    0.00    1.00     0  sshd
03:59:16 PM     0     18162   24.00    1.00    0.00   75.00   25.00     0  stress
03:59:16 PM     0     18163   24.00    0.00    0.00   75.00   24.00     0  stress
03:59:16 PM     0     18164   24.00    0.00    0.00   75.00   24.00     0  stress
03:59:16 PM     0     18165   25.00    0.00    0.00   75.00   25.00     0  stress
​
03:59:16 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
03:59:17 PM     0      5744    0.00    1.00    0.00    0.00    1.00     0  AliYunDun
03:59:17 PM    33     13412    6.00    0.00    0.00    9.00    6.00     0  php-fpm7.2
03:59:17 PM     0     18162   22.00    0.00    0.00   77.00   22.00     0  stress
03:59:17 PM     0     18163   23.00    0.00    0.00   77.00   23.00     0  stress
03:59:17 PM     0     18164   22.00    0.00    0.00   78.00   22.00     0  stress
03:59:17 PM     0     18165   22.00    0.00    0.00   77.00   22.00     0  stress
03:59:17 PM     0     18167    1.00    0.00    0.00    1.00    1.00     0  pidstat
^C
​
Average:      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:      109       663    0.33    0.00    0.00    0.00    0.33     -  mysqld
Average:        0      5744    0.66    0.99    0.00    0.00    1.65     -  AliYunDun
Average:       33     13412    1.98    0.00    0.00    2.97    1.98     -  php-fpm7.2
Average:        0     15115    0.00    0.33    0.00    0.00    0.33     -  sshd
Average:        0     18162   23.43    0.33    0.00   75.58   23.76     -  stress
Average:        0     18163   23.43    0.00    0.00   75.25   23.43     -  stress
Average:        0     18164   23.43    0.00    0.00   75.58   23.43     -  stress
Average:        0     18165   23.43    0.00    0.00   75.58   23.43     -  stress
Average:        0     18167    0.33    0.00    0.00    1.32    0.33     -  pidstat
Average:        0     31790    0.00    0.33    0.00    0.00    0.33     -  assist_daemon
root@iZwz96377ws99tjeva00kcZ:~# 

其中,我们可以看到:

UID:用户id,为0表示是root用户;

PID:进程pid;上述看到18162、18163、18164、18165消耗CPU资源和top里看到的进程号吻合;

%usr:进程在用户态消耗CPU百分比,其中每个进程消耗23%多,累加起来,差不多100%;

%system:进程在内核态消耗CPU百分比;进程的CPU消耗并没有在内核态;

%guest:进程运行虚拟化环境下的CPU使用率;通常不需要关注;

%wait:进程在等待CPU的使用率;这里看到,分别是75%;单核CPU,4个进程争抢,平均每个进程的CPU使用率25%,那么同时,等待CPU的使用率就是75%左右,符合场景;

%CPU:表示该进程总的CPU使用率;

CPU:表示CPU内核编号;这里是单核CPU,一直显示的是数字0;在多核CPU的机器上,可以看到CPU编号,从0开始;

Command:表示进程正在执行的命令和程序;

2 pidstat看不到等待CPU的场景

session1:

root@iZwz96377ws99tjeva00kcZ:~# stress -c 1 -t 300
stress: info: [18266] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd

session2:

root@iZwz96377ws99tjeva00kcZ:~# pidstat -u 1
Linux 4.15.0-117-generic (iZwz96377ws99tjeva00kcZ)      04/21/2022      _x86_64_        (1 CPU)
​
04:21:31 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:21:32 PM     0      5744    1.00    0.00    0.00    0.00    1.00     0  AliYunDun
04:21:32 PM     0     18267   99.00    0.00    0.00    1.00   99.00     0  stress
​
04:21:32 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:21:33 PM   109       663    0.00    1.00    0.00    0.00    1.00     0  mysqld
04:21:33 PM     0      5744    0.00    1.00    0.00    0.00    1.00     0  AliYunDun
04:21:33 PM     0     18267   98.00    0.00    0.00    2.00   98.00     0  stress
​
04:21:33 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:21:34 PM     0      5744    1.00    0.00    0.00    0.00    1.00     0  AliYunDun
04:21:34 PM     0     18267   98.00    0.00    0.00    2.00   98.00     0  stress
^C
​
Average:      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:      109       663    0.00    0.33    0.00    0.00    0.33     -  mysqld
Average:        0      5744    0.67    0.33    0.00    0.00    1.00     -  AliYunDun
Average:        0     18267   98.33    0.00    0.00    1.67   98.33     -  stress
root@iZwz96377ws99tjeva00kcZ:~# 

五 为什么我的pidstat看不到进程等待CPU的%wait列

可能是低版本的pidstat,不同版本的pidstat看到的结果不同。

如下,10.1.5版本的pidstat看不到%wait列,而11.t.1版本的可以看到:

[root@test-74 ~]# pidstat -V
sysstat 版本 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
[root@test-74 ~]# pidstat 1
Linux 3.10.0-327.el7.x86_64 (test-74)   2022年04月21日  _x86_64_        (2 CPU)
​
16时27分35秒   UID       PID    %usr %system  %guest    %CPU   CPU  Command
16时27分36秒   502       803    0.00    0.99    0.00    0.99     1  zabbix_agentd
16时27分36秒     0     19439    0.00    0.99    0.00    0.99     0  pidstat
^C
​
平均时间:   UID       PID    %usr %system  %guest    %CPU   CPU  Command
平均时间:   502       803    0.00    0.99    0.00    0.99     -  zabbix_agentd
平均时间:     0     19439    0.00    0.99    0.00    0.99     -  pidstat
[root@test-74 ~]# 
​
#版本不同,可以看到的结果列也不同
root@iZwz96377ws99tjeva00kcZ:~# pidstat -V
sysstat version 11.6.1
(C) Sebastien Godard (sysstat <at> orange.fr)
root@iZwz96377ws99tjeva00kcZ:~# pidstat 1
Linux 4.15.0-117-generic (iZwz96377ws99tjeva00kcZ)      04/21/2022      _x86_64_        (1 CPU)
​
04:28:07 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:28:08 PM     0      5744    0.99    0.99    0.00    0.00    1.98     0  AliYunDun
04:28:08 PM     0     18271   48.51    0.99    0.00   50.50   49.50     0  stress
04:28:08 PM     0     18272   48.51    0.99    0.00   49.50   49.50     0  stress
​
04:28:08 PM   UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
04:28:09 PM     0     18271   49.00    0.00    0.00   51.00   49.00     0  stress
04:28:09 PM     0     18272   49.00    0.00    0.00   51.00   49.00     0  stress
^C
​
Average:      UID       PID    %usr %system  %guest   %wait    %CPU   CPU  Command
Average:        0      5744    0.50    0.50    0.00    0.00    1.00     -  AliYunDun
Average:        0     18271   48.76    0.50    0.00   50.75   49.25     -  stress
Average:        0     18272   48.76    0.50    0.00   50.25   49.25     -  stress
root@iZwz96377ws99tjeva00kcZ:~# 

六 遗留下来待完成的工作

通过man pidstat继续查看命令帮助,可以看到、学习、复习很多基础性的硬核知识和内容。

留言