专注于快乐的事情

综合监控到线程-pidstat命令

#pidstat

用pidstat工具可以获取每个进程使用cpu、内存和磁盘等系统资源的统计信息。

pidstat看上去就像top,不过top的输出会覆盖掉之前的输出,而pidstat的输出则添加在之前的输出的后面。

基本使用

以1秒为信息采集周期,分别获取cpu、内存和磁盘IO的统计信息
pidstat -u 1

pidstat -r 1

pidstat -d 1

字段描述

pidstat

输出结果如下:

1
2
3
4
5
6
linux 4.4.0-53-generic (ubuntu) 	12/15/2016 	_x86_64_	(3 CPU)

03:20:10 PM UID PID %usr %system %guest %CPU CPU Command
03:20:10 PM 0 1 0.01 0.02 0.00 0.02 0 systemd
03:20:10 PM 0 3 0.00 0.00 0.00 0.00 0 ksoftirqd/0
03:20:10 PM 0 7 0.00 0.04 0.00 0.04 2
字段 说明
PID 进程pid
%usr 进程在用户态运行所占cpu时间比率
%system 进程在内核态运行所占cpu时间比率
%CPU 进程运行所占cpu时间比率,在各个CPU上的使用量的总和,例如1600%,表示消耗了将近16个CPU
CPU 指示进程在哪个核运行
Command 进程对应的命令

执行pidstat默认输出信息为系统启动后到执行时间点的统计信息,因而即使当前某进程的cpu占用率很高,输出中的值有可能仍为0。

指定采样周期和采样次数
pidstat 2 2

参数

cpu使用情况统计(-u)

使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样

pidstat -p 1080 -u 1 3
使用-p选项,我们可以查看特定进程的系统资源使用情况

使用t参数显示线程
pidstat -p 1080 -u 1 3 -t

内存使用情况统计(-r)

pidstat -r -p 927 1

1
2
3
4
03:30:13 PM   UID       PID  minflt/s  majflt/s     VSZ     RSS   %MEM  Command
03:30:14 PM 122 927 0.00 0.00 1234292 149376 7.31 mysqld
03:30:15 PM 122 927 0.00 0.00 1234292 149376 7.31 mysqld
03:30:16 PM 122 927 0.00 0.00 1234292 149376 7.31 mysqld

字段 说明
minflt/s 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数
majflt/s 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生
VSZ 该进程使用的虚拟内存(以kB为单位)
RSS 该进程使用的物理内存(以kB为单位)
%MEM 该进程使用内存的百分比
Command 拉起进程对应的命令

IO情况统计(-d)

pidstat -d 1 2

1
2
03:40:17 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s iodelay  Command
03:40:18 PM 1000 1676 0.00 1441476.00 0.00 0 dd
字段 说明
kB_rd/s 每秒进程从磁盘读取的数据量(以kB为单位)
kB_wr/s 每秒进程向磁盘写的数据量(以kB为单位)
Command 拉起进程对应的命令

用法举例

评论系统未开启,无法评论!