pidstat是针对Linux操作系统中某个进程进行资源监控的一个常用命令。使用该命令可以列出每个进程ID占用的资源情况,如图2-1-5所示。
图2-1-5
另外,还可以通过在pidstat命令后面增加数字参数来轮询获取资源使用的数据,例如执行pidstat 1 3可以轮询每隔1秒自动获取3个活动进程的CPU使用情况,如图2-1-6所示。
图2-1-6
执行pidstat后获得的性能监控指标的详细说明如表2-2所示。
表2-2 pidstat性能监控的指标及其含义
pidstat还支持其他的参数,我们可以通过执行pidstat --help命令查看它支持的其他参数,如图2-1-7所示。
图2-1-7
· pidstat -d:展示每个进程的I/O使用情况,如图2-1-8所示。进程的I/O的3个指标如表2-3所示。
图2-1-8
表2-3 进程I/O的3个指标及其含义
· pidstat -p:如果只需要查看指定进程ID的资源使用情况,可以通过-p参数来指定,例如执行pidstat -p 1533命令可以查看进程编号为1533的进程所占用的CPU资源情况,如图2-1-9所示。
图2-1-9
执行pidstat -d -p 1533可以查看进程编号为1533的进程的I/O使用情况,如图2-1-10所示。
图2-1-10
· pidstat -r:展示每个进程的内存使用情况,如图2-1-11所示。内存使用情况指标说明如表2-4所示。
图2-1-11
表2-4 每个进程的内存使用情况的指标及其含义
· pidstat -u:和执行pidstat命令获取的数据一致。
· pidstat -w:展示每个进程的CPU上下文切换次数,如图2-1-12所示。CPU上下文切换次数指标说明如表2-5所示。
图2-1-12
表2-5 每个进程的CPU上下文切换次数的指标及其含义
· pidstat-l:显示进程正在执行的命令以及该命令对应的所有参数,如图2-1-13所示。
图2-1-13
· pidstat -t:展示进程以及进程对应线程的资源使用情况,如图2-1-14所示。
图2-1-14
图2-1-14中的TGID表示的就是进程ID,而TID表示的是对应的进程ID下的线程ID。
例如,可以执行pidstat -r -t -p 1533来查看进程ID为1533的进程以及该进程对应的线程的内存使用情况,如图2-1-15所示。
图2-1-15
· pidstat -s:展示每个进程的堆栈使用情况,如图2-1-16所示。堆栈使用情况指标说明如表2-6所示。
图2-1-16
表2-6 每个进程堆栈使用情况的指标及其含义
· pidstat-U:展示进程的资源使用数据时同时展示进程ID对应的用户名称,如图2-1-17所示,在USER列可以看到用户的名称。
图2-1-17