ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Linux sar命令

Linux sar命令

原创 Linux操作系统 作者:mikeliuy 时间:2016-07-05 11:04:39 0 删除 编辑
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.6 (Santiago)
# sar -h
Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports:
    -b    I/O and transfer rate statistics                    IO和传输率统计
    -B    Paging statistics                                   页统计
    -d    Block device statistics                             块设备统计
    -I { <int> | SUM | ALL | XALL }    
        Interrupts statistics                                 中断统计
    -m    Power management statistics                         电源管理统计
    -n { <keyword> [,...] | ALL }
        Network statistics                                    网络统计
        Keywords are:
        DEV    Network interfaces                             网络接口
        EDEV    Network interfaces (errors)                   网络接口(错误)
        NFS        NFS client                                 NFS客户端
        NFSD    NFS server                                    NFS服务端
        SOCK    Sockets    (v4)                               套接字
        IP        IP traffic    (v4)                          IP流量
        EIP        IP traffic    (v4) (errors)                IP流量(错误)
        ICMP    ICMP traffic    (v4)                          ICMP流量
        EICMP    ICMP traffic    (v4) (errors)                ICMP流量(错误)
        TCP        TCP traffic    (v4)                        TCP流量
        ETCP    TCP traffic    (v4) (errors)
        UDP        UDP traffic    (v4)                        UDP流量
        SOCK6    Sockets    (v6)
        IP6        IP traffic    (v6)                       
        EIP6    IP traffic    (v6) (errors)
        ICMP6    ICMP traffic    (v6)
        EICMP6    ICMP traffic    (v6) (errors)
        UDP6    UDP traffic    (v6)
    -q    Queue length and load average statistics            队列长度和平均加载统计
    -r    Memory utilization statistics                       内存利用率统计
    -R    Memory statistics                                   内存统计
    -S    Swap space utilization statistics                   SWAP交换空间统计
    -u [ ALL ]
         CPU utilization statistics                           CPU利用率统计
    -v    Kernel table statistics                             内核表统计
    -w    Task creation and system switching statistics       任务交换和系统切换统计
    -W    Swapping statistics                                 正交换统计
    -y    TTY device statistics                               TTY设备统计
    
# sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
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> ] ]

在命令行中,<interval> 和<count> 两个参数组合起来定义采样间隔和次数,<interval>为采样间隔,在某些较早版本是必须有的参数;<count>为采样次数,是可选的。默认值是1。
-o filename表示将命令结果以二进制格式存放在文件中。

举例说明:
一、每10秒采样一次,连续采样6次,观察CPU的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中:

# sar -u -o test 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

09:49:48 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:49:58 AM     all      0.13      0.00      0.09      0.00      0.00     99.78
09:50:08 AM     all      0.16      0.00      0.11      0.00      0.00     99.72
09:50:18 AM     all      0.13      0.00      0.11      0.00      0.00     99.76
09:50:28 AM     all      0.16      0.00      0.12      0.00      0.00     99.72
09:50:38 AM     all      0.14      0.00      0.10      0.00      0.00     99.76
09:50:48 AM     all      0.13      0.00      0.10      0.00      0.00     99.77
Average:        all      0.14      0.00      0.11      0.00      0.00     99.75

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

一般情况:
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。

生成的二进制文件test,是不能用cat、vim等工具查看的,需要用下面的命令查看。
# sar -f test
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

09:56:41 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:56:51 AM     all      0.13      0.00      0.11      0.01      0.00     99.76
09:57:01 AM     all      0.16      0.00      0.11      0.00      0.00     99.73
09:57:11 AM     all      0.11      0.00      0.09      0.00      0.00     99.80
09:57:21 AM     all      0.14      0.00      0.11      0.00      0.00     99.75
09:57:31 AM     all      0.17      0.00      0.09      0.00      0.00     99.74
09:57:41 AM     all      0.16      0.00      0.11      0.00      0.00     99.74
Average:        all      0.14      0.00      0.10      0.00      0.00     99.75

二、每10秒采样一次,连续采样6次,查看核心表的状态:
# sar -v 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:03:40 AM dentunusd   file-nr  inode-nr    pty-nr
10:03:50 AM     97452     15904     44591         2
10:04:00 AM     97460     15904     44593         2
10:04:10 AM     97468     15904     44595         2
10:04:20 AM     97476     15904     44597         2
10:04:30 AM     97488     15904     44600         2
10:04:40 AM     97496     15904     44602         2
Average:        97473     15904     44596         2

说明:
dentunusd:目录高速缓存中未被使用的条目数量
file-nr:文件句柄(file handle)的使用数量
inode-nr:索引节点句柄(inode handle)的使用数量
pty-nr:使用的pty数量

三、每10秒采样一次,连续采样6次,监控内存分页:
# sar -r 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:09:55 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
10:10:05 AM   1746008   6254368     78.18    503100   1349700   6978880     43.11
10:10:15 AM   1745140   6255236     78.19    503108   1349716   6979372     43.11
10:10:25 AM   1745256   6255120     78.19    503112   1350140   6978892     43.11
10:10:35 AM   1744768   6255608     78.19    503124   1350196   6979384     43.11
10:10:45 AM   1745388   6254988     78.18    503128   1350212   6978892     43.11
10:10:55 AM   1745016   6255360     78.19    503128   1350220   6979384     43.11
Average:      1745263   6255113     78.19    503117   1350031   6979134     43.11

说明:
kbmemfree:这个值和free命令中的free值基本一致,不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

四、每10秒采样一次,连续采样6次,监控内存分页:
# sar -B 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:33:02 AM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
10:33:12 AM      0.00     67.40    251.55      0.00    443.33      0.00      0.00      0.00      0.00
10:33:22 AM      0.40     30.89    132.30      0.00    387.96      0.00      0.00      0.00      0.00
10:33:32 AM      0.00     51.35    302.91      0.00    490.07      0.00      0.00      0.00      0.00
10:33:42 AM      0.00     35.74    131.93      0.00    391.27      0.00      0.00      0.00      0.00
10:33:52 AM      0.00     56.11    798.60      0.00    804.71      0.00      0.00      0.00      0.00
10:34:02 AM      0.00     82.81    284.92      0.00    459.80      0.00      0.00      0.00      0.00
Average:         0.07     54.05    317.16      0.00    496.27      0.00      0.00      0.00      0.00

说明:
pgpgin/s:每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比

五、每10秒采样一次,连续采样6次,监控I/O和传送速率情况:
# sar -b 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:39:20 AM       tps      rtps      wtps   bread/s   bwrtn/s
10:39:30 AM     28.39      0.00     28.39      0.00    261.58
10:39:40 AM     14.34      0.00     14.34      0.00    109.13
10:39:50 AM     18.57      0.00     18.57      0.00    194.38
10:40:00 AM     37.31      0.00     37.31      0.00    401.20
10:40:10 AM     13.84      0.00     13.84      0.00    110.73
10:40:20 AM     25.80      0.00     25.80      0.00    273.09
Average:        23.04      0.00     23.04      0.00    225.02

说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

六、每10秒采样一次,连续采样6次,进程队列长度和平均负载状态监控:
# sar -q 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:43:27 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
10:43:37 AM         1       908      0.00      0.00      0.00
10:43:47 AM         1       908      0.00      0.00      0.00
10:43:57 AM         1       907      0.00      0.00      0.00
10:44:07 AM         1       907      0.00      0.00      0.00
10:44:17 AM         1       907      0.00      0.00      0.00
10:44:27 AM         1       907      0.00      0.00      0.00
Average:            1       907      0.00      0.00      0.00

说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载

七、每10秒采样一次,连续采样6次,监控系统交换活动信息:
# sar -W 10 6
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

10:56:24 AM  pswpin/s pswpout/s
10:56:34 AM      1.62     18.99
10:56:44 AM      0.00      1.83
10:56:54 AM      0.00      0.00
10:57:04 AM      0.00      0.00
10:57:14 AM      0.00      0.00
10:57:24 AM      0.00      0.00
Average:         0.27      3.49

说明:
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量


八、每10秒采样一次,连续采样1次,监控设备使用情况:
# sar -d 10 1
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

11:00:45 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11:00:55 AM    dev8-0     37.16      0.81    395.53     10.67      0.00      0.07      0.03      0.11
11:00:55 AM   dev8-16      0.20      0.00      0.81      4.00      0.00      0.00      0.00      0.00
11:00:55 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:00:55 AM  dev253-1     61.62      0.81    395.53      6.43      0.00      0.07      0.02      0.10
11:00:55 AM  dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:00:55 AM  dev253-3      0.20      0.00      0.81      4.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:       dev8-0     37.16      0.81    395.53     10.67      0.00      0.07      0.03      0.11
Average:      dev8-16      0.20      0.00      0.81      4.00      0.00      0.00      0.00      0.00
Average:     dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-1     61.62      0.81    395.53      6.43      0.00      0.07      0.02      0.10
Average:     dev253-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-3      0.20      0.00      0.81      4.00      0.00      0.00      0.00      0.00

# sar -dp 10 1      #加入p,DEV显示用户直观的设备名
Linux 2.6.32-504.el6.x86_64 (node186.test.com)     07/05/2016     _x86_64_    (16 CPU)

11:01:06 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11:01:16 AM       sda      2.13      0.00     82.59     38.86      0.00      0.43      0.43      0.09
11:01:16 AM       sdb      2.02      0.00    208.91    103.20      0.00      0.15      0.10      0.02
11:01:16 AM vg_swap-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:01:16 AM vg_boot-lv_root     10.73      0.00     82.59      7.70      0.02      1.67      0.08      0.09
11:01:16 AM vg_nfs-lv_nfs      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:01:16 AM vg_disk-lv_disk     26.62      0.00    208.91      7.85      0.00      0.05      0.01      0.02

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          sda      2.13      0.00     82.59     38.86      0.00      0.43      0.43      0.09
Average:          sdb      2.02      0.00    208.91    103.20      0.00      0.15      0.10      0.02
Average:    vg_swap-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vg_boot-lv_root     10.73      0.00     82.59      7.70      0.02      1.67      0.08      0.09
Average:    vg_nfs-lv_nfs      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vg_disk-lv_disk     26.62      0.00    208.91      7.85      0.00      0.05      0.01      0.02

说明:
tps: 每秒从物理磁盘I/O的次数;多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的。
rd_sec/s: 每秒读扇区的次数。
wr_sec/s: 每秒写扇区的次数。
avgrq-sz: 平均每次设备I/O操作的数据大小(扇区)。
avgqu-sz: 磁盘请求队列的平均长度。
await: 从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒)。
svctm: 系统处理每次请求的平均时间,不包括在请求队列中消耗的时间。
%util: I/O请求占CPU的百分比,比率越大,说明越饱和。

一般情况下:
1. avgqu-sz 的值较低时,设备的利用率较高。
2. 当%util的值接近 1% 时,表示设备带宽已经占满。

九、综合考虑:
1、如果CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看;
2、如果内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看;
3、如果I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26812308/viewspace-2121509/,如需转载,请注明出处,否则将追究法律责任。

下一篇: vmstat命令
请登录后发表评论 登录
全部评论

注册时间:2012-06-18

  • 博文量
    72
  • 访问量
    382427