zoukankan      html  css  js  c++  java
  • sar命令详解

    sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。
    sar 命令行的常用格式:
    sar [options] [-A] [-o file] t [n]
    在命令行中, n 和 t 两个参数组合起来定义采样间隔和次数, t 为采样间隔, 是必须有的参数, n 为采样次数,是可选的,默认值是 1, -o file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。 options 为命令行选项, sar 命令的选项很多,下面只列出常用选项:
         -A:所有报告的总和。
         -u: CPU 利用率
         -v:进程、节点、文件和锁表状态。
      -p:像是当前系统中指定 CPU 使用信息。
        -d:硬盘使用报告。
        -r:显示系统内存的使用情况。
      -n: 显示网络运行状态。 参数后面可跟 DEV、 EDEV、 SOCK 和 FULL。 DEV 显示网络接口信息, EDEV 显示网络错误的统计数据, SOCK 显示套接字信息, FULL 显示前三参数所以信息。


      -q:显示运行队列的大小,它与系统当时的平均负载相同
      -B:内存分页情况
      -R:显示进程在采样时间内的活动情况。
        -g:串口 I/O 的情况。
        -b:缓冲区使用情况。
        -a:文件读写情况。
        -c:系统调用情况。
        -R:进程的活动情况。
        -y:终端设备活动情况。
        -W:系统交换活动。

    sar——监控 CPU

    [sdk_test@ssdk1 server]$ sar -u 3 5
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:42:32 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    03:42:35 PM     all      1.08      0.00      0.58      0.00      0.00     98.33
    03:42:38 PM     all      0.75      0.00      0.50      0.00      0.00     98.75
    03:42:41 PM     all      1.25      0.00      0.58      0.00      0.00     98.17
    03:42:44 PM     all      0.75      0.00      0.33      0.00      0.00     98.91
    03:42:47 PM     all      1.50      0.00      0.75      0.00      0.00     97.75
    Average:        all      1.07      0.00      0.55      0.00      0.00     98.38

    %usr:用户进程消耗的 CPU 时间百分比。
     %nice: 运行正常进程消耗的 CPU 时间百分比。
     %system:系统进程消耗的 CPU 时间百分比。
     %iowait: I/O 等待所占 CPU 时间百分比。
     %steal:在内存紧张环境下, pagein 强制对不同的页面进行的 steal 操作。
     %idle: CPU 空闲状态的时间百分比。
    在所有的显示中,我们应主要注意%iow 和%idle, %iow 的值过高,表示硬盘存在 I/O 瓶颈, %idle 值高,表示 CPU 较空闲,如果%idle 值高但系统响应慢时,有可能是 CPU 等待分配内存, 此时应加大内存容量。 %idle 值如果持续低于 10,那么系统的 CPU 处理能力相对较低,表 明系统中最需要解决的资源是 CPU。

    sar——内存和交换空间监控

    [sdk_test@ssdk1 server]$ sar -r 5 3
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:50:06 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
    03:50:11 PM    155580  16115280     99.04    252504  12431540   3873512     23.06
    03:50:16 PM    154860  16116000     99.05    252504  12431764   3873512     23.06
    03:50:21 PM    155116  16115744     99.05    252504  12432000   3873512     23.06
    Average:       155185  16115675     99.05    252504  12431768   3873512     23.06
    [sdk_test@ssdk1 server]$ free
                 total       used       free     shared    buffers     cached
    Mem:      16270860   16113196     157664        464     252644   12430100
    -/+ buffers/cache:    3430452   12840408 
    Swap:       524280          0     524280 

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

    sar——内存分页监控

    [sdk_test@ssdk1 server]$ sar -B 5 3
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:49:40 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
    03:49:45 PM      0.00     18.47      9.64      0.00    101.20      0.00      0.00      0.00      0.00
    03:49:50 PM      0.00     14.46    362.05      0.00    149.80      0.00      0.00      0.00      0.00
    03:49:55 PM      0.00    136.82   1683.70      0.00    552.31      0.00      0.00      0.00      0.00
    Average:         0.00     56.53    684.46      0.00    267.58      0.00      0.00      0.00      0.00

     pgpgin/s:表示每秒从磁盘或 SWAP 置换到内存的字节数(KB)。
     pgpgout/s:表示每秒从内存置换到磁盘或 SWAP 的字节数(KB)。
     fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)。
     majflt/s:每秒钟产生的主缺页数。

    sar——I/O 和传送速率监控

    [sdk_test@ssdk1 server]$ sar -b 5 3
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:49:18 PM       tps      rtps      wtps   bread/s   bwrtn/s
    03:49:23 PM      0.80      0.00      0.80      0.00     16.00
    03:49:28 PM      3.62      0.00      3.62      0.00    291.35
    03:49:33 PM      2.40      0.00      2.40      0.00    189.18
    Average:         2.27      0.00      2.27      0.00    165.24

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

    sar——进程队列长度和平均负载状态监控

    [sdk_test@ssdk1 server]$ sar -q 5 3
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:48:56 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
    03:49:01 PM         0       535      0.02      0.02      0.00
    03:49:06 PM         0       536      0.01      0.02      0.00
    03:49:11 PM         0       536      0.01      0.02      0.00
    Average:            0       536      0.01      0.02      0.00

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

    sar——系统交换活动信息监控

    [sdk_test@ssdk1 server]$ sar -W 3 5
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    03:45:41 PM  pswpin/s pswpout/s
    03:45:44 PM      0.00      0.00
    03:45:47 PM      0.00      0.00
    03:45:50 PM      0.00      0.00
    03:45:53 PM      0.00      0.00
    03:45:56 PM      0.00      0.00
    Average:         0.00      0.00

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

    sar——设备使用情况监控

    [sdk_test@ssdk1 server]$ sar -d 5 3
    Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1)     10/28/2016     _x86_64_    (4 CPU)
    
    04:16:22 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    04:16:27 PM  dev252-0      0.40      0.00      6.41     16.00      0.00      0.00      0.00      0.00
    04:16:27 PM dev252-16      0.80      0.00    155.51    194.00      0.00      1.00      1.00      0.08
    
    04:16:27 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    04:16:32 PM  dev252-0      1.80      0.00     16.03      8.89      0.00      0.00      0.00      0.00
    04:16:32 PM dev252-16      1.20      0.00    142.69    118.67      0.00      1.50      0.83      0.10
    
    04:16:32 PM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    04:16:37 PM  dev252-0      1.20      0.00     20.80     17.33      0.00      0.00      0.00      0.00
    04:16:37 PM dev252-16      1.00      0.00     68.80     68.80      0.00      1.40      1.00      0.10
    
    Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    Average:     dev252-0      1.13      0.00     14.42     12.71      0.00      0.00      0.00      0.00
    Average:    dev252-16      1.00      0.00    122.30    122.13      0.00      1.33      0.93      0.09

     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% 时,表示设备带宽已经占满。

    总结

     要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
     怀疑 CPU 存在瓶颈,可用 sar -u 和 sar -q 等来查看
     怀疑内存存在瓶颈,可用 sar -B、 sar -r 和 sar -W 等来查看
     怀疑 I/O 存在瓶颈,可用 sar -b、 sar -u 和 sar -d 等来查看



  • 相关阅读:
    swagger配置
    windows下安装redis
    Redis在windows下安装过程
    jenkins安装部署全过程
    MySQL表名不区分大小写的设置方法
    Linux常用命令
    java 执行redis的部分方法
    把jar包加入本地maven库内
    Java 枚举7常见种用法
    【转】每天一个linux命令(1):ls命令
  • 原文地址:https://www.cnblogs.com/mululu/p/6008313.html
Copyright © 2011-2022 走看看