Linux-pidstat监控并统计Linux进程的数据
pidstat命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。
pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。
在Debian/Ubuntu系统中可以使用下面的命令来安装
# apt-get install sysstat
CentOS/Fedora/RHEL版本的linux中则使用下面的命令:
# yum install sysstat
使用pidstat不加任何参数等价于加上-p参数,但是只有正在活动的任务会被显示出来。
# pidstat
在结果中你能看到如下内容:
通过使用-d参数来得到I/O的统计数据。比如:
[xgj@entel2 ~]$ pidstat -d -p 2749
Linux 3.10.5-3.el6.x86_64 (entel2) 01/19/2017 _x86_64_ (24 CPU)
08:20:06 PM PID kB_rd/s kB_wr/s kB_ccwr/s Command
08:20:06 PM 2749 0.00 0.00 0.00 mdbJob
[xgj@entel2 ~]$
IO 输出会显示一些内的条目:
使用-r标记你能够得到内存使用情况的数据。
[xgj@entel2 ~]$ pidstat -r -p 2749
Linux 3.10.5-3.el6.x86_64 (entel2) 01/19/2017 _x86_64_ (24 CPU)
08:21:04 PM PID minflt/s majflt/s VSZ RSS %MEM Command
08:21:04 PM 2749 0.00 0.00 1708464 34100 0.03 mdbJob
[xgj@entel2 ~]$
重要的条目:
# pidstat -r 2 5
这会给你5份关于page faults的统计数据结果,间隔2秒。这将会更容易的定位出现问题的进程。
# pidstat -T CHILD -C OCPro
Linux 2.6.32-431.el6.x86_64 (centos6.5) 01/20/2017 _x86_64_ (8 CPU)
12:40:42 AM PID usr-ms system-ms guest-ms Command
12:40:42 AM 22022 3200 3920 0 OCPro
12:40:42 AM 22027 3310 4200 0 OCPro
12:40:42 AM 22032 3240 4010 0 OCPro
12:40:42 AM 22037 3270 4010 0 OCPro
12:40:42 AM 22042 3110 3940 0 OCPro
# pidstat -urd -h