linux系统管理工具sar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统管理工具sar相关的知识,希望对你有一定的参考价值。
linux系统管理工具sar
- 监控网卡流量
#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的压缩功能进行传输,结果也没看到压缩包的数量有变化. - 监控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等等。 - 监控内存资源
#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
- 监控内存分页
#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)的百分比。 - 关于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回. - 监控中断
#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表示每秒的中断次数. - 平均负载和队列的监控
#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的主要内容,如果未能解决你的问题,请参考以下文章