常用系统性能分析工具

Linux sar命令:

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

[root ~]$ sar --help
用法: sar [ 选项 ] [ <时间间隔> [ <次数> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n { <keyword> [,...] | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ] [ --legacy ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]

options 为命令行选项,sar命令常用选项如下:

-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息

 

1. CPU资源监控

例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况:

sar -u  10 3

[root ~]$ sar -u  10 3
Linux 2.6.32-431.20.5.el6.x86_64 (localhost.localdomain)        2014年12月09日  _x86_64_        (1 CPU)

17时12分09秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
17时12分19秒     all      0.00      0.00      0.20      0.00      0.00     99.80
17时12分29秒     all      0.00      0.00      0.10      0.00      0.00     99.90
17时12分39秒     all      0.00      0.00      0.10      0.00      0.00     99.90
平均时间:        all      0.00      0.00      0.13      0.00      0.00     99.87

1.  若%iowait的值过高,表示硬盘存在I/O瓶颈

     2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

     3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

2、I/O和传送速率监控

例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:

      sar -b 10 3

[root ~]$ sar -b 10 3
Linux 2.6.32-431.20.5.el6.x86_64 (localhost.localdomain)        2014年12月09日  _x86_64_        (1 CPU)

17时16分11秒       tps      rtps      wtps   bread/s   bwrtn/s
17时16分21秒      0.00      0.00      0.00      0.00      0.00
17时16分31秒      0.00      0.00      0.00      0.00      0.00
17时16分41秒      1.80      0.00      1.80      0.00     15.23
平均时间:         0.60      0.00      0.60      0.00      5.08

     tps:每秒钟物理设备的 I/O 传输总量

     rtps:每秒钟从物理设备读入的数据总量

     wtps:每秒钟向物理设备写入的数据总量

     bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

     bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

 

3、进程队列长度和平均负载状态监控

例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:

    sar -q 10 3

[root ~]$ sar -q 10 3
Linux 2.6.32-431.20.5.el6.x86_64 (localhost.localdomain)        2014年12月09日  _x86_64_        (1 CPU)

17时20分14秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
17时20分24秒         0       173      0.00      0.00      0.00
17时20分34秒         0       173      0.00      0.00      0.00
17时20分44秒         0       173      0.00      0.00      0.00
平均时间:            0       173      0.00      0.00      0.00

输出项说明:

     runq-sz:运行队列的长度(等待运行的进程数)

     plist-sz:进程列表中进程(processes)和线程(threads)的数量

     ldavg-1:最后1分钟的系统平均负载(System load average)

     ldavg-5:过去5分钟的系统平均负载

     ldavg-15:过去15分钟的系统平均负载

 

 

未完待续

 

posted @ 2014-12-15 10:46  GoogSQL  阅读(715)  评论(0编辑  收藏  举报