首页 > 编程笔记 > Linux命令 阅读:9

Linux sysstat工具的用法(附带实例)

sysstat 工具包含检测系统性能及效率的一组工具,例如 CPU 的使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于判断系统是否正常运行。

如果是通过源码包安装,请到官方下载源码包,地址为 http://perso.wanadoo.fr/sebastien.godard。

Sysstat 软件包集成如下工具:
下面开始安装 sysstat 工具包,如下所示:
[root@localhost ~]# tar zxvf sysstat-10.0.0.tar.gz
[root@localhost sysstat-10.0.0]# ./configure
[root@localhost sysstat-10.0.0]# make
[root@localhost sysstat-10.0.0]# make install

Sysstat iostat工具

iostat 工具用于输出 CPU 和磁盘 I/O 相关的统计信息,具体语法格式如下:
iostat [-c|-d] [-k] [-t] [-V] [-x] [-p device|ALL] [间隔描述] [检测次数]
上述参数的含义如下:
直接运行 iostat 命令,结果如下所示:
[root@localhost ~]# iostat
Linux 2.6.25-14.fc9.i686 (localhost.localdomain)    11/23/2012    _i686_  (1 CPU)
avg-cpu:  %user   %nice  %system   %iowait  %steal   %idle
      3.60    0.04    1.53    0.49     0.00    94.34
Device:          tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             1.66        2.47       32.28     800397   10474295
dm-0            8.34        2.46       32.28     797729   10473872
dm-1            0.00        0.00        0.00       592       404
sdb             0.00        0.01        0.00      4433         1
结果中关于 CPU 性能参数的含义如下:
结果中关于磁盘 I/O 性能参数的含义如下:
使用 -x 参数可以获得更多的统计信息,如下所示(请读者执行命令对照结果):
[root@localhost init.d]# iostat -d -x -k 1 10
Linux 2.6.25-14.fc9.i686 (localhost.localdomain)   11/23/2012    _i686_    (1 CPU)
Device:        rrqm/s   wrqm/s     r/s     w/s   rkB/s    wkB/s avgrq-sz avgqu-sz  await
r_await w_await  svctm  %util
sda             0.03     6.65    0.25    1.42    2.47    32.28    41.81     0.16  98.24
28.60  110.40   6.41   1.07
dm-0           0.00   0.00  0.27  8.07  2.46  32.28   8.33  1.35  161.51
34.13  165.77  1.28   1.06
dm-1           0.00   0.00  0.00  0.00  0.00   0.00   8.00  0.00   53.71
52.81   55.04  7.02   0.00
sdb            0.02   0.00  0.00  0.00  0.01   0.00  37.26  0.00   16.76
15.00  225.50  9.53   0.00
结果中各个的参数的含义如下:
此外可以通过如下命令查询 CPU 的部分信息,如下所示:
[root@localhost ~]# iostat -c 1 10
avg-cpu:  %user   %nice    %sys %iowait  %idle
      1.98    0.00    0.35   11.45  86.22
avg-cpu:  %user   %nice    %sys %iowait  %idle
      1.62    0.00    0.25   34.46  63.67

也可以通过以下命令查询某个具体的设备块的信息,如下所示:
[root@localhost ~]# iostat -d -k 1 |grep sda10
Device:          tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda10          60.72       18.95       71.53  395637647 1493241908
sda10          299.02     4266.67      129.41      4352       132
sda10          483.84     4589.90     4117.17      4544      4076
sda10          218.00     3360.00      100.00      3360       100
sda10          546.00     8784.00      124.00      8784       124
sda10          827.00     13232.00      136.00     13232       136

Sysstat mpstat工具

mpstat 是系统实时监控工具,主要报告 CPU 的一些信息,该命令的语法如下:
mpstat [-P {|ALL}] [internal [count]]
下面分析一下具体参数的含义:
下面通过示例来理解一下该命令的具体用法。
1) 显示所有 CPU 的信息,每秒钟执行一次:
[root@localhost ~]# mpstat -P ALL 1
Linux 2.6.25-14.fc9.i686 (localhost.localdomain)  11/23/2012  _i686_ (1 CPU)
07:49:21 AM  CPU  %usr  %nice  %sys %iowait  %irq  %soft  %steal  %guest  %idle
07:49:22 AM  all  0.99   0.00  0.99    0.00  0.00   0.00    0.00    0.00  98.02
07:49:22 AM    0  0.99   0.00  0.99    0.00  0.00   0.00    0.00    0.00  98.02
07:49:22 AM  CPU  %usr  %nice  %sys %iowait  %irq  %soft  %steal  %guest  %idle
07:49:23 AM  all  3.03   0.00  3.03    0.00  0.00   1.01    0.00    0.00  92.93
07:49:23 AM    0  3.03   0.00  3.03    0.00  0.00   1.01    0.00    0.00  92.93

2) 显示 ID 为 0 的 CPU 的信息,每秒钟执行一次:
[root@localhost ~]# mpstat -P 0 1
Linux 2.6.25-14.fc9.i686 (localhost.localdomain)  11/23/2012    _i686_  (1 CPU)
10:42:38 PM  CPU   %user   %nice %system %iowait  %irq   %soft   %idle   intr/s
10:42:43 PM  all    6.89    0.00   44.76    0.10  0.10    0.10   48.05  1121.60
10:42:43 PM    0    9.20    0.00   49.00    0.00  0.00    0.20   41.60   413.00
10:42:43 PM    1    4.60    0.00   40.60    0.00  0.20    0.20   54.60   708.40
10:42:43 PM  CPU   %user   %nice %system %iowait  %irq   %soft   %idle   intr/s
10:42:48 PM  all    7.60    0.00   45.30    0.30  0.00    0.10   46.70  1195.01
10:42:48 PM    0    4.19    0.00    2.20    0.40  0.00    0.00   93.21  1034.53
10:42:48 PM    1   10.78    0.00   88.22    0.40  0.00    0.00    0.20   160.48
Average:     CPU   %user   %nice %system %iowait  %irq   %soft   %idle   intr/s
Average:     all    7.25    0.00   45.03    0.20  0.05    0.10   47.38  1158.34
Average:       0    6.69    0.00   25.57    0.20  0.00    0.10   67.43   724.08
Average:       1    7.69    0.00   64.44    0.20  0.10    0.10   27.37   434.17
该结果的具体参数项的含义如下所示:

Sysstat sar工具

sar 是目前 Linux 最为全面的系统性能分析工具之一,它可以从多方面对系统的活动进行报告,提供文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等信息。

sar 的语法格式如下:
sar [options] [-A] [-o file] t [n]
其中,t 为采样间隔,n 为采样次数,默认值是 1;-o file 表示将命令结果以二进制格式存放在文件中,file 是文件名。

options 为命令行选项,选项的含义如下:
下面通过一个示例来理解 sar 工具的使用方法,如下所示:
[root@localhost ~]# sar -u 1 5
Linux 2.6.25-14.fc9.i686 (localhost.localdomain)       11/24/2012     _i686_ (1 CPU)
02:33:56 AM     CPU     %user     %nice   %system  %iowait    %steal    %idle

02:33:57 AM     all      2.06      0.00      5.15     0.00      0.00    92.78
02:33:58 AM     all      3.00      0.00      6.00     0.00      0.00    91.00
02:33:59 AM     all     41.41      0.00      9.09     0.00      0.00    49.49
02:34:00 AM     all     96.77      0.00      3.23     0.00      0.00     0.00
结果中具体参数的含义如下所示:
提示,如果 %iowait 的值过高,表示硬盘存在 I/O 瓶颈;如果 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量;若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

相关文章