• pidstat 详解


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

    用法: pidstat [ 选项 ] [ <时间间隔> [ <次数> ] ]
    选项:
    [ -C <命令> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
    [ -p { <进程号> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]

    常用的参数:

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

    查看所有进程的CPU使用情况

    pidstat 和 pidstat -u -p ALL 是等效的。
    [root@127-0-0-1 ~]# pidstat
    Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     08/06/2020     _x86_64_    (40 CPU)
    
    07:57:55 PM       PID    %usr %system  %guest    %CPU   CPU  Command
    07:57:55 PM         1    0.00    0.00    0.00    0.00     1  init
    07:57:55 PM         2    0.00    0.00    0.00    0.00     1  kthreadd
    07:57:55 PM         3    0.00    0.00    0.00    0.00     0  migration/0
    07:57:55 PM         4    0.00    0.00    0.00    0.00     0  ksoftirqd/0

    PID:进程ID

    
    

    %usr:进程在用户空间占用CPU的百分比

    
    

    %system:进程在内核空间占用CPU的百分比

    
    

    %guest:进程在虚拟机占用CPU的百分比

    
    

    %CPU:进程占用CPU的百分比

    
    

    CPU:处理进程的CPU编号

    
    

    Command:当前进程对应的命令

    内存使用情况统计

    [root@127-0-0-1 ~]# pidstat -r
    Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     08/06/2020     _x86_64_    (40 CPU)
    
    08:02:38 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
    08:02:38 PM         1      0.00      0.00   19352   1472   0.00  init
    08:02:38 PM       836      0.00      0.00  215600  75416   0.06  redis-server
    08:02:38 PM      1630      0.02      0.00 1601196 115652   0.09  mongod

    PID:进程标识符

    minflt/s:任务每秒发生的次要错误,不需要从磁盘加载页

    majflt/s:任务每秒发生的主要错误,需要从磁盘加载页

    VSZ:虚拟机地址大小,虚拟内存的使用KB

    RSS:常驻集合大小,非交换区里内存使用KB

    Command:task命令名

    IO使用情况统计

    [root@127-0-0-1 ~]# pidstat -d
    Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     08/06/2020     _x86_64_    (40 CPU)
    
    08:06:08 PM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
    08:06:08 PM         1     37.59    186.71      1.63  init
    08:06:08 PM       584      0.00      0.01      0.00  khugepaged
    08:06:08 PM       836      0.00      0.00      0.00  redis-server
    08:06:08 PM      1630      0.00      0.04      0.02  mongod
    
    PID:进程id
    
    kB_rd/s:每秒从磁盘读取的KB
    
    kB_wr/s:每秒写入磁盘KB
    
    kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
    
    COMMAND:task的命令名

    进程上下文切换

    [root@127-0-0-1 ~]# pidstat -w -p 24397
    Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     08/06/2020     _x86_64_    (40 CPU)
    
    08:08:11 PM       PID   cswch/s nvcswch/s  Command
    08:08:11 PM     24397      0.00      0.00  mongod
    
    PID:进程id
    
    Cswch/s:每秒主动任务上下文切换数量
    
    Nvcswch/s:每秒被动任务上下文切换数量
    
    Command:命令名

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

    [root@127-0-0-1 ~]# pidstat -t -p 24397
    Linux 2.6.32-754.22.1.el6.x86_64 (10-130-10-74)     08/06/2020     _x86_64_    (40 CPU)
    
    08:09:24 PM      TGID       TID    %usr %system  %guest    %CPU   CPU  Command
    08:09:24 PM     24397         -    0.00    0.00    0.00    0.00    30  mongod
    08:09:24 PM         -     24397    0.00    0.00    0.00    0.00    30  |__mongod
    08:09:24 PM         -     24398    0.00    0.00    0.00    0.00    21  |__signalP.gThread
    08:09:24 PM         -     24399    0.00    0.00    0.00    0.00     2  |__Backgro.kSource
    
    TGID:主线程的标识符
    
    TID:线程id
    
    %usr:进程在用户空间占用cpu的百分比
    
    %system:进程在内核空间占用cpu的百分比
    
    %guest:进程在虚拟机占用cpu的百分比
    
    %CPU:进程占用cpu的百分比
    
    CPU:处理进程的cpu编号
    
    Command:当前进程对应的命令
  • 相关阅读:
    HYSBZ 1500 [NOI2005]维修数列 splay
    The 15th Zhejiang University Programming Contest
    工作小助手-v1.0正式上线,欢迎体验!!!
    登录窗体登录失败但是MainForm依然弹出无法结束的解决方法
    报错'cannot change visible in onshow or onhide'
    release模式发布软件的方法
    发布软件时因为窗体自动加载次序不对导致报错00000000
    修改类别 (类实现)两种方法
    从记事本导入记录
    快速粘贴
  • 原文地址:https://www.cnblogs.com/hankyoon/p/13448718.html
Copyright © 2020-2023  润新知