美文网首页
Linux 性能调优之pidstat命令详解

Linux 性能调优之pidstat命令详解

作者: 蒙嘉 | 来源:发表于2020-04-29 18:16 被阅读0次

    简介

    pidstat 命令是 sysstat 工具的一个命令,用来监控全部或者指定进程的CPU、内存、线程、设备IO等系统资源的占用情况。pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令之后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。pidstat可以监控到进程级别的信息;这就意味着我们就可以直接定位问题源头。


    安装

    pidstat是sysstat工具的一个命令,如果服务器没有现成需要进行安装。

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

    apt-get install sysstat 
    

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

    yum install sysstat
    
    离线安装

    1、下载sysstat离线包,下载地址如下:

    http://sebastien.godard.pagesperso-orange.fr/   
    

    2、解压:

    tar zxvf sysstat-12.3.2.tar.gz  
    

    3、进入目录进行配置:

    cd sysstat-12.3.2;./configure   
    

    4、编译:

    make        
    

    5、安装:

    make install        
    

    命令详解

    pidstat 常用命令格式如下:

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

    常用参数说明如下:

    -u 默认的参数,显示各个进程的CPU使用统计
    -r 显示各个进程的内存使用统计
    -d 显示各个进程的IO使用情况
    -p 指定进程号
    -w 显示每个进程的上下文切换情况
    -t 显示选择任务的线程的统计信息外的额外信息 
    -T { TASK | CHILD | ALL }
    这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
    注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
    -V:版本号
    -h:在一行上显示了所有活动,这样其他程序可以容易解析。
    -I:在SMP环境,表示任务的CPU使用率/内核数量
    -l:显示命令名和所有参数
    

    使用实例

    命令:pidstat和pidstat -u -p ALL

    说明:pidstat和pidstat -u -p ALL是等效的,默认显示所有进程的CPU使用率

    输出:

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

    命令:**pidstat -r **

    说明:输出进程内存使用情况统计

    输出:

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

    命令:pidstat -d -p 29976 1 5

    说明:每隔一秒,一共输出5次进程ID为29976的IO统计信息

    输出:

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

    命令:pidstat -t -p 29976

    说明:显示选择任务线程的统计信息外的额外信息

    输出:

    TGID:主线程的标识
    TID:线程ID
    

    命令:pidstat -w -p 29976 1

    说明:显示选择任务线程上下文切换情况

    输出:

    Cswch/s:每秒主动任务上下文切换数量
    Nvcswch/s:每秒被动任务上下文切换数量 
    

    命令:

    pidstat -T TASK
    pidstat -T CHILD
    pidstat -T ALL
    TASK表示报告独立的task。
    CHILD关键字表示报告进程下所有线程统计信息。
    ALL表示报告独立的task和task下面的所有线程。
    

    输出:

    Usr-ms:任务和子线程在用户级别使用的毫秒数。
    System-ms:任务和子线程在系统级别使用的毫秒数。
    Guest-ms:任务和子线程在虚拟机(running a virtual processor)使用的毫秒数。
    

    相关文章

      网友评论

          本文标题:Linux 性能调优之pidstat命令详解

          本文链接:https://www.haomeiwen.com/subject/pypnwhtx.html