Linux pidstat命令详解

命令简介

pidstat命令是干什么的呢?说实话,这个命令,我之前压根就没有用过的,我也不知道它有什么用。但是在我总结《Linux性能监测:IO篇》这篇文章时,其中有篇文章讲到了pidstat命令,好家伙,搞了这么几年,居然不知道这个命令,更不要说用了。后来Google了一下,大概了解了一下,觉的很有必要单独用一篇文章来总结一下它,所以就有了这篇文章。

废话少说,直入正题。pidstat是sysstat工具的一个命令,用于监控全部或指定进程的CPU、内存、线程、设备IO等系统资源的占用情况。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

敲黑板了,注意重点内容,pidstat可以监控到进程级别的信息;这就意味着我们就可以直接定位问题源头。话不多说,我们继续。

命令安装

pidstat是sysstat工具的一个命令,如果服务器上没有现成的,不要着急。

  • 在Debian/Ubuntu系统中可以使用下面的命令来安装

  1. # apt-get install sysstat

CentOS/Fedora/RHEL版本的Linux中则使用下面的命令

  1. # yum install sysstat -y

命令详解

pidstat常用命令格式如下:

  1. pidstat [参数] [时间] [次数]

常用参数说明如下:

  1. -u 默认的参数,显示各个进程的CPU使用统计

  2. -r 显示各个进程的内存使用统计

  3. -d 显示各个进程的IO使用情况

  4. -p 指定进程号

  5. -w 显示每个进程的上下文切换情况

  6. -t 显示选择任务的线程的统计信息外的额外信息

下面就对我们常用的使用方式进行详细的总结。

使用实例

命令:pidstatpidstat -u -p ALL
说明:pidstatpidstat -u -p ALL是等效的,默认显示所有进程的CPU使用率
输出:

image.png

  • 输出内容详解:
    UID:用户ID
    PID:进程ID
    %usr:进程在用户空间占用CPU的百分比
    %system:进程在内核空间占用CPU的百分比
    %guest:任务花费在虚拟机上的CPU使用率(运行在虚拟处理器)
    %CPU:任务总的CPU使用率
    CPU:正在运行这个任务的处理器编号
    Command:这个任务的命令名称

  • 命令:pidstat -r
    说明:输出进程内存使用情况统计
    输出:

image.png

  • 输出重点内容详解:
    minflt/s:从内存中加载数据时每秒出现的次要错误的数目,这些不要求从磁盘载入内存页面
    majflt/s:从内存中加载数据时每秒出现的主要错误的数目,这些要求从磁盘载入内存页面
    VSZ:虚拟地址大小,虚拟内存的使用KB
    RSS:长期内存使用,任务的不可交换物理内存的使用量KB
    %MEM:进程使用的物理内存百分比,top命令也会输出该字段

  • 命令:pidstat -d -p 29976 1 5
    说明:每隔一秒,一共输出5次进程ID为29976的IO统计信息
    输出:

image.png

  • 输出重点内容详解:
    kB_rd/s:进程每秒从磁盘读取的数据量(以kB为单位)
    kB_wr/s:进程每秒向磁盘写入的数据量(以kB为单位)
    kB_ccwr/s:任务写入磁盘被取消的速率(KB);当任务截断脏的pagecache的时候会发生。

  • 命令:pidstat -t -p 10538
    说明:显示选择任务的线程的统计信息外的额外信息
    输出:

image.png

输出重点内容详解:
TGID:主线程的标识
TID:线程ID

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:Linux iostat命令详解
下一篇:Linux lsof命令详解

发表评论