环境说明

Centos6.8 x86_64

使用说明

很多时候我们需要查看各进行对于硬件资源的占用情况,譬如说CPU、Memory、Disk,在Centos6下可以通过pidstat可以查看进行对各资源的占用情况。
[root@ovirt-host-2 ~]# pidstat --help
Usage: pidstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -C <command> ] [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -t ] [ -u ] [ -V ] [ -w ]
[ -p { <pid> [,...] | SELF | ALL } ] [ -T { TASK | CHILD | ALL } ]

pidstat后面可以跟很多参数,但是最常用的分别是:

 -u:监控cpu
 -r:监控内存
 -d:监控硬盘
    我们先来通过pidstat查看各进行占用cpu资源情况,后面的参数“1”,为显示列表的时间间隔,为1秒。
[root@ovirt-host-2 ~]# pidstat -u 1
Linux 2.6.32-642.4.2.el6.x86_64 (ovirt-host-2)  10/13/2016      _x86_64_        (8 CPU)

11:04:20 AM       PID    %usr %system  %guest    %CPU   CPU  Command
11:04:21 AM      3428    5.77    0.96    0.00    6.73     3  vdsm
11:04:21 AM      4637   13.46   10.58    0.00   24.04     1  sshd
11:04:21 AM      4639    1.92    3.85    0.00    5.77     3  virt-p2v-server
11:04:21 AM      4864    1.92    1.92    0.00    3.85     2  pidstat
11:04:21 AM     12080    0.96    2.88    0.00    3.85     2  pidstat

11:04:21 AM       PID    %usr %system  %guest    %CPU   CPU  Command
11:04:22 AM      4637   15.00    9.00    0.00   24.00     1  sshd
11:04:22 AM      4639    3.00    3.00    0.00    6.00     3  virt-p2v-server
11:04:22 AM      4864    0.00    2.00    0.00    2.00     2  pidstat
11:04:22 AM     12080    2.00    2.00    0.00    4.00     6  pidstat

11:04:22 AM       PID    %usr %system  %guest    %CPU   CPU  Command
11:04:23 AM       125    0.00    1.00    0.00    1.00     2  kswapd0
11:04:23 AM      2863    1.00    1.00    0.00    2.00     2  libvirtd
11:04:23 AM      3428    1.00    0.00    0.00    1.00     3  vdsm
11:04:23 AM      4637   14.00   10.00    0.00   24.00     1  sshd
11:04:23 AM      4639    2.00    4.00    0.00    6.00     3  virt-p2v-server
11:04:23 AM      4864    2.00    2.00    0.00    4.00     4  pidstat
11:04:23 AM     12080    1.00    2.00    0.00    3.00     2  pidstat

可以通过man pidstat中-u的内容,来了解上述列表中各参数的含义

   -u     Report CPU utilization.

              When reporting statistics for individual tasks, the following values are displayed:

              PID
                     The identification number of the task being monitored.

              %usr
                     Percentage of CPU used by the task while executing at the user level (application), with or without nice priority. Note that this field does NOT include time spent running a virtual processor.

              %system
                     Percentage of CPU used by the task while executing at the system level (kernel).

              %guest
                     Percentage of CPU spent by the task in virtual machine (running a virtual processor).

              %CPU
                     Total percentage of CPU time used by the task. In an SMP environment, the task鈙 CPU usage will be divided by the total number of CPU鈙 if option -I has been entered on the command line.

              CPU
                     Processor number to which the task is attached.

              Command
                     The command name of the task.

了解查看cpu后,我们再来看看查看内存

Linux 2.6.32-642.4.2.el6.x86_64 (ovirt-host-2)  10/13/2016      _x86_64_        (8 CPU)

11:07:57 AM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:07:58 AM      3428     12.62      0.00 2030068  42408   0.26  vdsm
11:07:58 AM      4864    619.42      0.00  101380   1216   0.01  pidstat
11:07:58 AM     12143    621.36      0.00  101384   1192   0.01  pidstat

11:07:58 AM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:07:59 AM      1860      9.00      0.00   18372    800   0.00  irqbalance
11:07:59 AM      2863      2.00      0.00  933520  10356   0.06  libvirtd
11:07:59 AM      3428     76.00      0.00 2030068  42408   0.26  vdsm
11:07:59 AM      4864    638.00      0.00  101380   1216   0.01  pidstat
11:07:59 AM     12143    646.00      0.00  101384   1224   0.01  pidstat

一样,通过man pidstat来查看各参数的含义

       -r     Report page faults and memory utilization.

              When reporting statistics for individual tasks, the following values are displayed:

              PID
                     The identification number of the task being monitored.

              minflt/s
                     Total number of minor faults the task has made per second, those which have not required loading a memory page from disk.

              majflt/s
                     Total number of major faults the task has made per second, those which have required loading a memory page from disk.

              VSZ
                     Virtual Size: The virtual memory usage of entire task in kilobytes.

              RSS
                     Resident Set Size: The non-swapped physical memory used by the task in kilobytes.

              Command
                     The command name of the task.

下面我们来查看监控disk

[root@ovirt-host-2 ~]# pidstat -d 1
Linux 2.6.32-642.4.2.el6.x86_64 (ovirt-host-2)  10/13/2016      _x86_64_        (8 CPU)

11:12:29 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:12:31 AM      4639      0.00  11592.45      0.00  virt-p2v-server

11:12:31 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:12:32 AM      4639      0.00   8192.00      0.00  virt-p2v-server

11:12:32 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:12:33 AM      4639      0.00  12288.00      0.00  virt-p2v-server

11:12:33 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:12:34 AM      4639      0.00  12288.00      0.00  virt-p2v-server

11:12:34 AM       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
11:12:35 AM      4639      0.00  12288.00      0.00  virt-p2v-server

查看各参数的含义

    -d     Report I/O statistics (kernels 2.6.20 and later only).  The following values are displayed:

              PID
                     The identification number of the task being monitored.

              kB_rd/s
                     Number of kilobytes the task has caused to be read from disk per second.

              kB_wr/s
                     Number of kilobytes the task has caused, or shall cause to be written to disk per second.

              kB_ccwr/s
                     Number of kilobytes whose writing to disk has been cancelled by the task. This may occur when the task truncates some dirty pagecache. In this case, some IO which another task has been accounted for will not be  happening.

              Command
                     The command name of the task.