常用系统性能分析工具
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分钟的系统平均负载
未完待续