sar 找出系统瓶颈的利器

sar命令详解

一、sar介绍

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

二、sar语法

[root@host-39-108-217-12 ~]# sar --help
用法: sar [ 选项 ] [ <时间间隔> [ <显示报告次数> ] ]
选项:
[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]
[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]
[ -I { <中断> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -m { <关键词> [,...] | ALL } ] [ -n { <关键词> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ -f [ <文件名> ] | -o [ <文件名> ] | -[0-9]+ ]
[ -i <间隔> ] [ -s [ <时:分:秒> ] ] [ -e [ <时:分:秒> ] ]

三、sar选项

-A  显示所有的报告信息;
-b  显示I/O和传送速率的统计信息
-B  输出内存页面的统计信息
-c  输出进程统计信息,每秒创建的进程数
-d  输出每一个块设备的活动信息
-i interval 指定间隔时长,单位为秒
-p  显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
-q  输出进程队列长度和平均负载状态统计信息
-r  输出内存和交换空间的统计信息
-R  输出内存页面的统计信息
-t  读取 /var/log/sa/saDD 的数据时显示其中记录的原始时间,如果没有这个参数使用用户的本地时间
-u  输出CPU使用情况的统计信息
-v  输出inode、文件和其他内核表的统计信息
-V  输出版本号信息
-w  输出系统交换活动信息
-W  输出系统交换的统计信息
-y  输出TTY设备的活动信息

-n {DEV|EDEV|NFS|NFSD|SOCK|ALL} 分析输出网络设备状态统计信息。
    DEV 报告网络设备的统计信息
    EDEV    报告网络设备的错误统计信息
    NFS 报告 NFS 客户端的活动统计信息
    NFSD    报告 NFS 服务器的活动统计信息
    SOCK    报告网络套接字(sockets)的使用统计信息
    ALL 报告所有类型的网络活动统计信息

-x {pid|SELF|ALL}   输出指定进程的统计信息。
    pid 用 pid 指定特定的进程
    SELF    表示 sar 自身
    ALL 表示所有进程
-X {pid|SELF|ALL}   输出指定进程的子进程的统计信息

-I {irq|SUM|ALL|XALL}   输出指定中断的统计信息。
    irq 指定中断号
    SUM 指定输出每秒接收到的中断总数
    ALL 指定输出前16个中断
    XALL    指定输出全部的中断信息

-P {cpu|ALL}    输出指定 CPU 的统计信息
-o filename 将输出信息保存到文件 filename
-f filename 从文件 filename 读取数据信息。filename 是使用-o 选项时生成的文件。
-s hh:mm:ss 指定输出统计数据的起始时间
-e hh:mm:ss 指定输出统计数据的截至时间,默认为18:00:00

四、sar实例

4.1 输出CPU使用情况的统计信息
[root@cnetos5 ~]# sar
[root@cnetos5 ~]# sar -u
Linux 2.6.18-53.el5 (cnetos5)   01/22/2008

12:00:01 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
12:10:01 AM       all      0.02      0.00      0.14      0.01      0.00     99.84
12:20:01 AM       all      0.02      0.00      0.12      0.01      0.00     99.86
12:30:01 AM       all      0.01      0.00      0.12      0.01      0.00     99.86
Average:          all      0.03      0.00      0.13      0.01      0.00     99.84

输出项说明:
CPU all 表示统计信息为所有 CPU 的平均值。
%user   显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice   显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal  管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle   显示 CPU 空闲时间占用 CPU 总时间的百分比。

若 %iowait 的值过高,表示硬盘存在I/O瓶颈
若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。
4.2 显示I/O和传送速率的统计信息
[root@cnetos5 ~]# sar -b
Linux 2.6.18-53.el5 (cnetos5)   01/22/2008

12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:10:01 AM      1.58      0.00      1.58      0.00     16.71
12:20:01 AM      1.09      0.00      1.09      0.00     10.85
12:30:01 AM      1.08      0.00      1.08      0.00     10.74
Average:         1.24      0.00      1.24      0.00     12.70
输出项说明:

tps 每秒钟物理设备的 I/O 传输总量
rtps    每秒钟从物理设备读入的数据总量
wtps    每秒钟向物理设备写入的数据总量
bread/s 每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s
4.3 输出网络设备状态的统计信息
[root@host-47-98-97-124 scripts]# sar -n DEV |grep eth0
144002秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 
001001秒      eth0     20.23     17.11      5.87      6.10      0.00      0.00      0.00
002001秒      eth0     20.14     17.06      5.84      6.09      0.00      0.00      0.00
003001秒      eth0     19.95     16.87      5.83      6.07      0.00      0.00      0.00

输出项说明:
IFACE    网络设备名
rxpck/s  每秒接收的包总数
txpck/s  每秒传输的包总数
rxbyt/s  每秒接收的字节(byte)总数
txbyt/s  每秒传输的字节(byte)总数
rxcmp/s  每秒接收压缩包的总数
txcmp/s  每秒传输压缩包的总数
rxmcst/s 每秒接收的多播(multicast)包的总数
4.4 输出网络设备状态的统计信息(查看网络设备故障)
[root@host-47-98-97-124 scripts]# sar -n EDEV |egrep 'eth0|IFACE'
000001秒   IFACE rxerr/s  txerr/s   coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s  txfifo/s
001001秒    eth0    0.00     0.00    0.00    0.00    0.00     0.00      0.00      0.00      0.00
002001秒    eth0    0.00     0.00    0.00     0.00    0.00    0.00      0.00      0.00      0.00
003001秒    eth0    0.00     0.00    0.00     0.00     0.00    0.00     0.00      0.00      0.00
004001秒    eth0    0.00     0.00    0.00     0.00     0.00    0.00     0.00      0.00      0.00

输出项说明:
IFACE       网络设备名
rxerr/s     每秒接收的坏包总数
txerr/s     传输包时每秒发生错误的总数
coll/s      传输包时每秒发生冲突(collision)的总数
rxdrop/s    接收包时,由于缺乏缓存,每秒丢弃(drop)包的数量
txdrop/s    传输包时,由于缺乏缓存,每秒丢弃(drop)包的数量
txcarr/s    传输包时,每秒发生的传输错误(carrier-error)的数量
rxfram/s    接收包时,每秒发生帧校验错误(frame alignment error)的数量
rxfifo/s    接收包时,每秒发生队列(FIFO)一出错误的数量
txfifo/s    传输包时,每秒发生队列(FIFO)一出错误的数量
4.5 输出进程队列长度和平均负载状态统计信息
[root@cnetos5 ~]# sar -q
Linux 2.6.18-53.el5 (cnetos5)   01/22/2008

12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
12:10:01 AM         0        85      0.02      0.01      0.00
12:20:01 AM         0        85      0.01      0.00      0.00
12:30:01 AM         0        85      0.03      0.01      0.00
Average:            0        85      0.01      0.00      0.00

输出项说明:
runq-sz 运行队列的长度(等待运行的进程数)
plist-sz    进程列表中进程(processes)和线程(threads)的数量
ldavg-1 最后1分钟的系统平均负载(System load average)
ldavg-5 过去5分钟的系统平均负载
ldavg-15    过去15分钟的系统平均负载
4.6 输出每秒创建的进程数的进程统计信息
[root@cnetos5 ~]# sar -c
Linux 2.6.18-53.el5 (cnetos5)   01/22/2008

12:00:01 AM    proc/s
12:10:01 AM      0.05
12:20:01 AM      0.03
12:30:01 AM      0.03
Average:         0.03

输出项说明:
proc/s  每秒钟创建的进程数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值