这篇文章将为大家详细讲解有关如何分析pidstat,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
pidstat
pidstat是sysstat工具的一个命令,用于监控全部或指定进程的CPU,内存,线程,设备IO等系统资源的占用情况。pidstat首次运行显示自系统启动开始的各项信息,之后运行pidstat将显示上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需要的统计信息。
用法: pidstat [ 选项 ] [ <时间间隔> [ <次数> ] ]
选项:
[ -C <命令> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
[ -p { <进程号> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]
常用的参数:
-u:默认参数,显示各个进程的使用统计
-r:显示各个进程的内存使用统计
-d:显示各个进程的IO使用情况
-p:指定进程号
-w:显示每个进程的上下文切换
-t:显示选择任务的线程的统计信息的额外信息
-T{ TASK | CHILD | ALL }:TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息,ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序容易解析
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参
查看所有进程的CPU使用情况
pidstat 和 pidstat -u -p ALL 是等效的。
[root@127-0-0-1 ~]# pidstat
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
07:57:55 PM PID %usr %system %guest %CPU CPU Command
07:57:55 PM 1 0.00 0.00 0.00 0.00 1 init
07:57:55 PM 2 0.00 0.00 0.00 0.00 1 kthreadd
07:57:55 PM 3 0.00 0.00 0.00 0.00 0 migration/0
07:57:55 PM 4 0.00 0.00 0.00 0.00 0 ksoftirqd/0
PID:进程ID
%usr:进程在用户空间占用CPU的百分比
%system:进程在内核空间占用CPU的百分比
%guest:进程在虚拟机占用CPU的百分比
%CPU:进程占用CPU的百分比
CPU:处理进程的CPU编号
Command:当前进程对应的命令
内存使用情况统计
[root@127-0-0-1 ~]# pidstat -r
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:02:38 PM PID minflt/s majflt/s VSZ RSS %MEM Command
08:02:38 PM 1 0.00 0.00 19352 1472 0.00 init
08:02:38 PM 836 0.00 0.00 215600 75416 0.06 redis-server
08:02:38 PM 1630 0.02 0.00 1601196 115652 0.09 mongod
PID:进程标识符
minflt/s:任务每秒发生的次要错误,不需要从磁盘加载页
majflt/s:任务每秒发生的主要错误,需要从磁盘加载页
VSZ:虚拟机地址大小,虚拟内存的使用KB
RSS:常驻集合大小,非交换区里内存使用KB
Command:task命令名
IO使用情况统计
[root@127-0-0-1 ~]# pidstat -d
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:06:08 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command
08:06:08 PM 1 37.59 186.71 1.63 init
08:06:08 PM 584 0.00 0.01 0.00 khugepaged
08:06:08 PM 836 0.00 0.00 0.00 redis-server
08:06:08 PM 1630 0.00 0.04 0.02 mongod
PID:进程id
kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB
kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
COMMAND:task的命令名
进程上下文切换
[root@127-0-0-1 ~]# pidstat -w -p 24397
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:08:11 PM PID cswch/s nvcswch/s Command
08:08:11 PM 24397 0.00 0.00 mongod
PID:进程id
Cswch/s:每秒主动任务上下文切换数量
Nvcswch/s:每秒被动任务上下文切换数量
Command:命令名
显示选择任务的线程的统计信息外的额外信息
[root@127-0-0-1 ~]# pidstat -t -p 24397
Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74) 08/06/2020 _x86_64_(40 CPU)
08:09:24 PM TGID TID %usr %system %guest %CPU CPU Command
08:09:24 PM 24397 - 0.00 0.00 0.00 0.00 30 mongod
08:09:24 PM - 24397 0.00 0.00 0.00 0.00 30 |__mongod
08:09:24 PM - 24398 0.00 0.00 0.00 0.00 21 |__signalP.gThread
08:09:24 PM - 24399 0.00 0.00 0.00 0.00 2 |__Backgro.kSource
TGID:主线程的标识符
TID:线程id
%usr:进程在用户空间占用cpu的百分比
%system:进程在内核空间占用cpu的百分比
%guest:进程在虚拟机占用cpu的百分比
%CPU:进程占用cpu的百分比
CPU:处理进程的cpu编号
Command:当前进程对应的命令
关于如何分析pidstat就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。