linux系统管理工具sar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统管理工具sar相关的知识,希望对你有一定的参考价值。

linux系统管理工具sar

  1. 监控网卡流量
    #sar -n  DEV 1 1  (1秒内取1次)
    Linux 3.10.0-123.9.3.el7.x86_64 (iZ25wvw5wozZ)     01/22/2018  _x86_64_    (16 CPU)
    03:08:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    03:08:02 PM      cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    03:08:02 PM      eth0    911.00    740.00    209.74    244.55      0.00      0.00      0.00
    03:08:02 PM      eth1      0.00     64.00      0.00     67.41      0.00      0.00      0.00
    03:08:02 PM        lo     13.00     13.00      0.69      0.69      0.00      0.00      0.00
    03:08:02 PM flannel.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    03:08:02 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    Average:         cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:         eth0    911.00    740.00    209.74    244.55      0.00      0.00      0.00
    Average:         eth1      0.00     64.00      0.00     67.41      0.00      0.00      0.00
    Average:           lo     13.00     13.00      0.69      0.69      0.00      0.00      0.00
    Average:    flannel.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    注:sar -n DEV 查看当前服务器的网络流量信息  rxpck/s: 每秒收包的数量  txpck/s: 每秒发包的数量

    说明:
    (1)rxpck/s:每秒钟收到数据包的数量.
    (2)txpck/s:每秒钟发送数据包的数量.
    (3)rxkB/s:每秒钟接收的字节(KB).
    (4)txkB/s:每秒钟发送的字节(KB).
    (5)rxcmp/s:每秒收到的压缩包的数量
    (6)txcmp/s:每秒发出的压缩包的数量
    (7)rxmcst/s:每秒收到的广播包的数量
    网络设备的数据来源于/proc/net/dev.
    我这里尝试用ssh的压缩功能进行传输,结果也没看到压缩包的数量有变化.

  2. 监控cpu资源
    #sar 1  (将所有CPU合并到一起进行监控)
    03:08:57 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    03:08:58 PM     all      5.47      0.00      5.97      2.58      0.06     85.91
    03:08:59 PM     all      5.85      0.00      6.29      2.33      0.06     85.46
    03:09:00 PM     all      4.76      0.00      6.27      1.57      0.06     87.34
    03:09:01 PM     all      6.67      0.00      6.17      1.83      0.13     85.21
    03:09:02 PM     all      4.97      0.00      6.35      1.32      0.06     87.30
    03:09:03 PM     all      4.47      0.00      6.30      0.00      0.06     89.17
    03:09:04 PM     all      3.95      0.00      5.71      0.00      0.06     90.27
    。。。。。
    03:09:07 PM     all      3.87      0.00      6.08      0.00      0.55     89.50
    Average:        all      4.92      0.00      6.04      0.97      0.07     88.01
    #sar -P  ALL 1 1 (可以显示每个CPU现在的负载)
    03:10:08 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    03:10:09 PM     all      6.21      0.00      6.65      3.32      0.13     83.69
    03:10:09 PM       0     30.21      0.00     10.42     52.08      0.00      7.29
    03:10:09 PM       1      8.00      0.00      1.00      2.00      0.00     89.00
    03:10:09 PM       2      4.00      0.00      1.00      0.00      0.00     95.00
    03:10:09 PM       3      0.00      0.00      0.00      0.00      0.00    100.00
    03:10:09 PM       4      1.98      0.00      0.99      0.00      0.99     96.04
    03:10:09 PM       5      3.00      0.00      1.00      0.00      0.00     96.00
    03:10:09 PM       6      2.00      0.00      1.00      0.00      0.00     97.00
    03:10:09 PM       7     14.14      0.00     85.86      0.00      0.00      0.00
    Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
    Average:        all      6.21      0.00      6.65      3.32      0.13     83.69
    Average:          0     30.21      0.00     10.42     52.08      0.00      7.29
    Average:          1      8.00      0.00      1.00      2.00      0.00     89.00
    Average:          2      4.00      0.00      1.00      0.00      0.00     95.00
    Average:          3      0.00      0.00      0.00      0.00      0.00    100.00
    Average:          4      1.98      0.00      0.99      0.00      0.99     96.04
    Average:          5      3.00      0.00      1.00      0.00      0.00     96.00
    Average:          6      2.00      0.00      1.00      0.00      0.00     97.00
    Average:          7     14.14      0.00     85.86      0.00      0.00      0.00

    说明:%user,%system,%iowait,%idle分别表示用户态进程占用CPU百分比,系统态进程占用CPU百分比,CPU等待IO百分比,CPU空闲百分比。
    重点说%nice和%steal,这是vmstat所没有的.
    %nice:如果一个程序在运行时用nice调整它的优先级,且优先级在1-19之间,并且是用户态的进程,这时%nice才会体现出来,%steal:一般在运行虚拟机的宿主机才用到,比如xen,QEMU,Bochs等等。

  3. 监控内存资源
    #sar -r 1
    03:20:55 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
    03:20:56 PM   1754084  14239212     89.03    204100   2997052  25525216    159.60  12852348    805468         0
    03:20:57 PM   1753824  14239472     89.03    204100   2997456  25525216    159.60  12852572    805740         0
    03:20:58 PM   1753668  14239628     89.03    204100   2997704  25525216    159.60  12852640    805904         0
    03:20:59 PM   1753200  14240096     89.04    204108   2997936  25525216    159.60  12852728    806048         0
    03:21:00 PM   1752548  14240748     89.04    204108   2998116  25525176    159.60  12852812    806244         0
    03:21:01 PM   1751756  14241540     89.05    204108   2998868  25525176    159.60  12853020    806808         0
    。。。。。
    03:21:01 PM   1749996  14243300     89.06    204112   3001284  25526988    159.61  12854832    807716         0
    Average:      1752725  14240571     89.04    204105   2998345  25525458    159.60  12852993    806275         0

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

    #free -h
                     total        used        free      shared  buff/cache   available
    Mem:            15G         10G        1.6G        777M        3.4G        3.9G
    Swap:            0B          0B          0B
  4. 监控内存分页
    #sar -B 1
    03:33:33 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
    03:33:34 PM      0.00  14504.00   3192.00      0.00   8984.00      0.00      0.00      0.00      0.00
    03:33:35 PM      0.00      0.00    866.00      0.00   3294.00      0.00      0.00      0.00      0.00
    03:33:36 PM      0.00    256.00    845.00      0.00   3711.00      0.00      0.00      0.00      0.00
    03:33:37 PM      0.00  19964.00   4765.00      0.00   3803.00      0.00      0.00      0.00      0.00
    03:33:38 PM      0.00  10620.00   3029.00      0.00   8643.00      0.00      0.00      0.00      0.00
    03:33:39 PM      0.00  26956.00   6252.00      0.00   4644.00      0.00      0.00      0.00      0.00
    03:33:40 PM      0.00  26208.00   5834.00      0.00  12574.00      0.00      0.00      0.00      0.00
    。。。。
    03:33:40 PM      0.00  20524.44   4968.89      0.00  15342.22      0.00      0.00      0.00      0.00
    Average:         0.00  14462.28   3626.71      0.00   7054.63      0.00      0.00      0.00      0.00

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

  5. 关于I节点,文件和其它内核表的监控
    #sar -v 1
    03:41:43 PM dentunusd   file-nr  inode-nr    pty-nr
    03:41:44 PM     38321      3296     22449         2
    03:41:45 PM     38327      3296     22455         2
    03:41:46 PM     38329      3296     22446         2
    03:41:47 PM     38329      3296     22448         2
    03:41:48 PM     38331      3296     22447         2
    03:41:49 PM     38331      3296     22447         2
    03:41:50 PM     38331      3296     22447         2
    03:41:51 PM     38336      3296     22448         2
    。。。。
    03:41:51 PM     38336      3296     22449         2
    Average:        38330      3296     22448         2

    说明:
    (1)dentunusd:在缓冲目录条目中没有使用的条目数量。
    dentunusd数据的数据来源是/proc/sys/fs/dentry-state的第二项数据.
    要弄明白它的意义,我们首先要弄明白dcache(目录高速缓存),因为系统中所有的inode都是通过文件名来访问的,而为了解决文件名到inode转换的时间,就引入了dcache.
    它是VFS层为当前活动和最近使用的名字维护的一个cache.
    dcache中所有处于unused状态和negative(消极)状态的dentry对象都通链入到dentry_unused链表中,这种dentry对象在回收内存时可能会被释放.
    如果我们在系统中运行ls -ltR /etc/会看到dentunusd的数量会多起来.
    而通过mount -o remount /dev/sda1会看到dentunusd会迅速会回收.
    (2)file-nr:被系统使用的文件句柄数量。
    file-nr的的数据来源是/proc/sys/fs/file-nr文件的第一项数据.
    实际上file-nr不是一个准确的值,file-nr每次增加的步长是64(64位系统),例如现在file-nr为2528,实际上可能只打开了2527个文件,而此时你打开两个文件后,它就会变成2592,而不是2530.
    (3)inode-nr:使用的索引节点数量。
    inode-nr的数据来源是/proc/sys/fs/inode-nr文件的第一项数据减去第二项数据的值.
    inode-nr文件的第一项数据是已经分配过的INODE节点.第二项数据是空闲的INODE节点.
    例如,inode-nr文件里的值为:13720 7987
    我们新建一个文件file1,此时inode-nr第一项数据会加1,就是13721,表示系统里建立了这么多的inode.
    我们再删除掉file1,此时就会变成13720.
    空闲的INODE节点表示我们已经里这么多的INODE节点曾经有过被利用,但没有被释放.
    所以INODE节点总数减去空闲的INODE,就是正在被用的INODE.
    最后通过使用mount -o remount /dev/sda1命令,空闲节点会被刷新,所以inode-nr的值会有所变化.
    (4)pty-nr:使用的pty数量。
    pty-nr的数据来源是/proc/sys/kernel/pty/nr
    表示登陆过的终端总数,如果我们登录过10回,退出了3回,最后的结果还是10回.

  6. 监控中断
    #sar -I ALL  1
    03:47:59 PM      INTR    intr/s
    03:48:00 PM         0      0.00
    03:48:00 PM         1      0.00
    03:48:00 PM         2      0.00
    03:48:00 PM         3      0.00
    03:48:00 PM         4      0.00
    03:48:00 PM         5      0.00
    03:48:00 PM         6      0.00
    03:48:00 PM         7      0.00

    说明:
    (1)INTR表示中断号,中断号代表的意义可以到/proc/interrupts查询.
    (2)intr/s表示每秒的中断次数.

  7. 平均负载和队列的监控
    #sar -q 1
    04:08:37 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    04:08:38 PM         1      2274      2.24      2.55      2.68         0
    04:08:39 PM         3      2274      2.24      2.55      2.68         1
    04:08:40 PM         2      2274      2.24      2.55      2.68         0
    04:08:41 PM         2      2274      2.24      2.55      2.68         0
    04:08:42 PM         1      2274      2.14      2.53      2.67         0
    04:08:43 PM         2      2274      2.14      2.53      2.67         0
    。。。。
    04:08:44 PM         3      2274      2.14      2.53      2.67         0
    Average:            2      2274      2.20      2.54      2.68         0

    说明:
    (1)runq-sz:处于运行或就绪的进程数量
    (2)plist-sz:现在进程的总数(包括线程).
    (3)ldavg-1:最近一分钟的负载.
    (4)ldavg-5:最近五分钟的负载.
    (5)ldavg-15:最近十分钟的负载.
    (6)平均负载和队列的数据来源于/proc/loadavg

以上是关于linux系统管理工具sar的主要内容,如果未能解决你的问题,请参考以下文章

linux工具-sar命令

Linux系统性能分析工具 sar--系统活动情况报告

linux下监控工具sar命令详解

linux工具之sar

linux 下的sar工具命令小结

[转帖]Linux系列之SAR命令使用详解