每天学一个 Linux 命令:pidstat
发布于: 2021 年 04 月 20 日

命令简介
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复制代码
划线
评论
复制
发布于: 2021 年 04 月 20 日阅读数: 19
Machine Gun
关注
还未添加个人签名 2021.03.28 加入
需要获取网络安全/渗透测试学习资料工具的朋友可联系V:machinegunjoe666 免费索取











评论