写点什么

每天学一个 Linux 命令:pidstat

用户头像
Machine Gun
关注
发布于: 2021 年 04 月 20 日
每天学一个 Linux 命令:pidstat

命令简介

pidstat 是著名的采集软件 systat 的组件之一。用于监控全部或指定进程的 CPU、内存、线程、设备 IO 等系统资源的占用情况。

pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行 pidstat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

[root@centos7 ~]# pidstat-bash: pdistat: command not found[root@centos7 ~]# yum install sysstat -y
复制代码

语法格式

 pidstat [ options ] [ <interval> [ <count> ] ]
复制代码

选项说明

-u  #显示各个进程的cpu使用统计-r  #显示各个进程的内存使用统计-d  #显示各个进程的IO使用情况-p  #指定进程号-w  #显示每个进程的上下文切换情况-t  #显示选择任务的线程的统计信息外的额外信息-V  #版本号-h  #在一行上显示了所有活动,这样其他程序可以容易解析-I  #在SMP环境,表示任务的CPU使用率/内核数量-l  #显示命令名和所有参数-T { TASK | CHILD | ALL }  #指定了pidstat监控的-C <command>  #查看对应command进程的状态[ <interval> [ <count> ]interval #显示间隔,单位scount    #显示次数,默认一直显示
复制代码

应用举例

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

[root@centos7 ~]# pidstat -u -p ALLLinux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
09:50:17 AM   UID       PID    %usr %system  %guest    %CPU   CPU  Command09:50:17 AM     0         1    0.01    0.02    0.00    0.03     0  systemd09:50:17 AM     0         2    0.00    0.00    0.00    0.00     0  kthreadd09:50:17 AM     0         4    0.00    0.00    0.00    0.00     0  kworker/0:0H09:50:17 AM     0         6    0.00    0.03    0.00    0.03     0  ksoftirqd/009:50:17 AM     0         7    0.00    0.00    0.00    0.00     0  migration/009:50:17 AM     0         8    0.00    0.00    0.00    0.00     0  rcu_bh09:50:17 AM     0         9    0.00    0.02    0.00    0.02     0  rcu_sched09:50:17 AM     0        10    0.00    0.00    0.00    0.00     0  lru-add-drain09:50:17 AM     0        11    0.00    0.01    0.00    0.01     0  watchdog/009:50:17 AM     0        13    0.00    0.00    0.00    0.00     0  kdevtmpfs09:50:17 AM     0        14    0.00    0.00    0.00    0.00     0  netns09:50:17 AM     0        15    0.00    0.00    0.00    0.00     0  khungtaskd09:50:17 AM     0        16    0.00    0.00    0.00    0.00     0  writeback09:50:17 AM     0        17    0.00    0.00    0.00    0.00     0  kintegrityd09:50:17 AM     0        18    0.00    0.00    0.00    0.00     0  bioset09:50:17 AM     0        19    0.00    0.00    0.00    0.00     0  bioset09:50:17 AM     0        20    0.00    0.00    0.00    0.00     0  bioset09:50:17 AM     0        21    0.00    0.00    0.00    0.00     0  kblockd
#pidstat -u -p ALL 与pidstat命令功能一样
复制代码

输出的信息说明

PID     #进程ID%usr    #进程在用户空间占用cpu的百分比%system #进程在内核空间占用cpu的百分比%guest  #进程在虚拟机占用cpu的百分比%CPU    #进程占用cpu的百分比CPU     #处理进程的cpu编号Command #当前进程对应的命令
复制代码

显示各活动进程的内存使用情况

[root@centos7 ~]# pidstat -rLinux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
09:54:32 AM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command09:54:32 AM     0         1      0.21      0.00  125616   4056   0.41  systemd09:54:32 AM     0       484      0.06      0.00   37112   3412   0.34  systemd-journal09:54:32 AM     0       503      0.01      0.00  190376   1336   0.13  lvmetad09:54:32 AM     0       509      0.02      0.00   44976   1928   0.19  systemd-udevd09:54:32 AM     0       600      0.00      0.00   55532    848   0.09  auditd09:54:32 AM   999       623      0.03      0.00  612368  12268   1.23  polkitd09:54:32 AM    81       626      0.01      0.00   58244   2484   0.25  dbus-daemon09:54:32 AM     0       634      0.03      0.00  476428   8744   0.88  NetworkManager09:54:32 AM     0       635      0.02      0.00   26384   1792   0.18  systemd-logind09:54:32 AM     0       638      0.03      0.00  126420   1624   0.16  crond09:54:32 AM     0       643      0.01      0.00   99208   2696   0.27  login09:54:32 AM   998       646      0.01      0.00  120408   2116   0.21  chronyd09:54:32 AM     0       868      0.02      0.00  112924   4356   0.44  sshd09:54:32 AM     0       870      0.02      0.00  220796   5196   0.52  rsyslogd09:54:32 AM     0       872      0.12      0.00  574304  17456   1.75  tuned
复制代码

输出信息详细说明

PID        #进程标识符Minflt/s   #任务每秒发生的次要错误,不需要从磁盘中加载页Majflt/s   #任务每秒发生的主要错误,需要从磁盘中加载页VSZ        #虚拟地址大小,虚拟内存的使用KBRSS        #常驻集合大小,非交换区五里内存使用KBCommand    #task命令名
复制代码

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

[root@centos7 ~]# pidstat -dLinux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
09:56:29 AM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command09:56:29 AM     0         1      1.41      2.11      0.30  systemd09:56:29 AM     0       404      0.00      0.00      0.00  xfsaild/dm-009:56:29 AM     0       484      0.01      0.00      0.00  systemd-journal09:56:29 AM     0       503      0.00      0.00      0.00  lvmetad09:56:29 AM     0       509      0.22      0.00      0.00  systemd-udevd09:56:29 AM     0       578      0.00      0.00      0.00  xfsaild/sda109:56:29 AM     0       600      0.00      0.01      0.00  auditd09:56:29 AM   999       623      0.08      0.00      0.00  polkitd09:56:29 AM    81       626      0.01      0.00      0.00  dbus-daemon09:56:29 AM     0       634      0.11      0.00      0.00  NetworkManager09:56:29 AM     0       635      0.01      0.00      0.00  systemd-logind09:56:29 AM     0       638      0.00      0.01      0.00  crond09:56:29 AM     0       643      0.00      0.00      0.00  login09:56:29 AM   998       646      0.01      0.00      0.00  chronyd09:56:29 AM     0       868      2.34      0.14      0.05  sshd09:56:29 AM     0       870      0.01      0.03      0.01  rsyslogd09:56:29 AM     0       872      0.10      0.00      0.00  tuned09:56:29 AM     0       972      0.01      0.00      0.00  master09:56:29 AM    89       974      0.00      0.00      0.00  qmgr09:56:29 AM     0     18356      0.00      0.00      0.00  bash09:56:29 AM     0     18378      0.00      0.00      0.00  python309:56:29 AM     0     19673      1.83      2.92      0.04  bash
复制代码

输出信息的详细说明

PID        #进程idkB_rd/s    #每秒从磁盘读取的KBkB_wr/s    #每秒写入磁盘KBkB_ccwr/s  #任务取消的写入磁盘的KBCOMMAND    #task的命令名
复制代码

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

[root@centos7 ~]# pidstat -wLinux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
10:02:46 AM   UID       PID   cswch/s nvcswch/s  Command10:02:46 AM     0         1      0.32      0.04  systemd10:02:46 AM     0         2      0.00      0.00  kthreadd10:02:46 AM     0         4      0.00      0.00  kworker/0:0H10:02:46 AM     0         6      1.55      0.00  ksoftirqd/010:02:46 AM     0         7      0.01      0.00  migration/010:02:46 AM     0         8      0.00      0.00  rcu_bh10:02:46 AM     0         9      7.02      0.00  rcu_sched10:02:46 AM     0        10      0.00      0.00  lru-add-drain10:02:46 AM     0        11      0.26      0.00  watchdog/010:02:46 AM     0        13      0.00      0.00  kdevtmpfs10:02:46 AM     0        14      0.00      0.00  netns10:02:46 AM     0        15      0.01      0.00  khungtaskd10:02:46 AM     0        16      0.00      0.00  writeback10:02:46 AM     0        17      0.00      0.00  kintegrityd
复制代码

输出信息的详细说明

PID        #进程idCswch/s    #每秒主动任务上下文切换数量Nvcswch/s  #每秒被动任务上下文切换数量Command    #命令名
复制代码

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

[root@centos7 ~]# pidstat -tLinux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
10:04:40 AM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command10:04:40 AM     0         1         -    0.01    0.02    0.00    0.03     0  systemd10:04:40 AM     0         -         1    0.01    0.02    0.00    0.02     0  |__systemd10:04:40 AM     0         2         -    0.00    0.00    0.00    0.00     0  kthreadd10:04:40 AM     0         -         2    0.00    0.00    0.00    0.00     0  |__kthreadd10:04:40 AM     0         6         -    0.00    0.03    0.00    0.03     0  ksoftirqd/010:04:40 AM     0         -         6    0.00    0.03    0.00    0.03     0  |__ksoftirqd/010:04:40 AM     0         9         -    0.00    0.02    0.00    0.02     0  rcu_sched10:04:40 AM     0         -         9    0.00    0.02    0.00    0.02     0  |__rcu_sched10:04:40 AM     0        11         -    0.00    0.01    0.00    0.01     0  watchdog/010:04:40 AM     0         -        11    0.00    0.01    0.00    0.01     0  |__watchdog/010:04:40 AM     0        15         -    0.00    0.00    0.00    0.00     0  khungtaskd10:04:40 AM     0         -        15    0.00    0.00    0.00    0.00     0  |__khungtaskd10:04:40 AM     0        32         -    0.00    0.00    0.00    0.00     0  khugepaged
复制代码

输出信息的详细说明

TGID   #主线程的表示TID    #线程id%usr   #进程在用户空间占用cpu的百分比%system  #进程在内核空间占用cpu的百分比%guest   #进程在虚拟机占用cpu的百分比%CPU     #进程占用cpu的百分比CPU      #处理进程的cpu编号Command  #当前进程对应的命令
复制代码

查看指定进程的信息

[root@centos7 ~]# pidstat -r -w  -d -p 18356Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
10:09:37 AM   UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command10:09:37 AM     0     18356      0.01      0.00  115676   2076   0.21  bash
10:09:37 AM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command10:09:37 AM     0     18356      0.00      0.00      0.00  bash
10:09:37 AM   UID       PID   cswch/s nvcswch/s  Command10:09:37 AM     0     18356      0.00      0.00  bash[root@centos7 ~]# pidstat  -t -p 18356Linux 3.10.0-1127.18.2.el7.x86_64 (centos7)  03/29/2021  _x86_64_ (1 CPU)
10:09:51 AM   UID      TGID       TID    %usr %system  %guest    %CPU   CPU  Command10:09:51 AM     0     18356         -    0.00    0.00    0.00    0.00     0  bash10:09:51 AM     0         -     18356    0.00    0.00    0.00    0.00     0  |__bash
复制代码


用户头像

Machine Gun

关注

还未添加个人签名 2021.03.28 加入

需要获取网络安全/渗透测试学习资料工具的朋友可联系V:machinegunjoe666 免费索取

评论

发布
暂无评论
每天学一个 Linux 命令:pidstat