zoukankan      html  css  js  c++  java
  • 进程实时监控pidstat命令详解

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

    实例讲解

    默认参数

    执行pidstat,将输出系统启动后所有活动进程的cpu统计信息:

    $ pidstat 1
    Linux 3.13.0-49-generic (titanclusters-xxxxx) 07/14/2015 _x86_64_ (32 CPU)
    07:41:02 PM UID PID %usr %system %guest %CPU CPU Command
    07:41:03 PM 0 9 0.00 0.94 0.00 0.94 1 rcuos/0
    07:41:03 PM 0 4214 5.66 5.66 0.00 11.32 15 mesos-slave
    07:41:03 PM 0 4354 0.94 0.94 0.00 1.89 8 java
    07:41:03 PM 0 6521 1596.23 1.89 0.00 1598.11 27 java
    07:41:03 PM 0 6564 1571.70 7.55 0.00 1579.25 28 java
    07:41:03 PM 60004 60154 0.94 4.72 0.00 5.66 9 pidstat
    07:41:03 PM UID PID %usr %system %guest %CPU CPU Command
    07:41:04 PM 0 4214 6.00 2.00 0.00 8.00 15 mesos-slave
    07:41:04 PM 0 6521 1590.00 1.00 0.00 1591.00 27 java
    07:41:04 PM 0 6564 1573.00 10.00 0.00 1583.00 28 java
    07:41:04 PM 108 6718 1.00 0.00 0.00 1.00 0 snmp-pass
    07:41:04 PM 60004 60154 1.00 4.00 0.00 5.00 9 pidstat

    pidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态。如上的输出,可以看见两个JAVA进程占用了将近1600%的CPU时间,既消耗了大约16个CPU核心的运算资源。

    指定采样周期和采样次数

    pidstat命令指定采样周期和采样次数,命令形式为”pidstat [option] interval [count]”,以下pidstat输出以2秒为采样周期,输出10次cpu使用统计信息:

    pidstat 2 10

    cpu使用情况统计(-u)

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

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

    使用-r选项,pidstat将显示各活动进程的内存使用统计:

    linux:~ # pidstat -r -p 13084 1
    Linux 2.6.32.12-0.7-default (linux)             06/18/12        _x86_64_
    
    15:08:18          PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
    15:08:19        13084 133835.00      0.00 15720284 15716896  96.26  mmmm
    15:08:20        13084  35807.00      0.00 15863504 15849756  97.07  mmmm
    15:08:21        13084  19273.87      0.00 15949040 15792944  96.72  mmmm

    以上各列输出的含义如下:

    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)


    使用-d选项,我们可以查看进程IO的统计信息:

    linux:~ # pidstat -d 1 2
    Linux 2.6.32.12-0.7-default (linux)             06/18/12        _x86_64_
    
    17:11:36          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
    17:11:37        14579 124988.24      0.00      0.00  dd
    
    17:11:37          PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
    17:11:38        14579 105441.58      0.00      0.00  dd

    输出信息含义

    kB_rd/s: 每秒进程从磁盘读取的数据量(以kB为单位)
    kB_wr/s: 每秒进程向磁盘写的数据量(以kB为单位)
    Command: 拉起进程对应的命令

    针对特定进程统计(-p)

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

    linux:~ # pidstat -r -p 1 1
    Linux 2.6.32.12-0.7-default (linux)             06/18/12        _x86_64_
    
    18:26:17          PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
    18:26:18            1      0.00      0.00   10380    640   0.00  init
    18:26:19            1      0.00      0.00   10380    640   0.00  init
    ……

    pidstat常用命令

    使用pidstat进行问题定位时,以下命令常被用到:

    pidstat -u 1
    
    pidstat -r 1
    
    pidstat -d 1

    以上命令以1秒为信息采集周期,分别获取cpu、内存和磁盘IO的统计信息。

  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/mululu/p/5833722.html
Copyright © 2011-2022 走看看