和sar比起来,其他Linux命令都是猹

我决定把今年装x的机会,留给sar命令 。它是一个linux下的监控工具,一直站在鄙视链的顶端 。之所以让人望而生畏,主要是由于它繁多的参数 。但,这么强大的命令,并非无章可循,实际上是非常简单的 。
今天就和xjjdog一起,寻觅sar命令的隐秘之处,共同沾得帝王之气,以便傲视群cmd,彰显自己侧漏的霸气!
 

和sar比起来,其他Linux命令都是猹

文章插图
 
??
sar命令很简单,它的参数主要分为四部分 。其中,第二部分和第三、四部分,是可选的,也就是说,最终要的参数,就剩下一个,那就是类型 。这个参数的值非常的多,我们暂且放在一边,看一下以上命令的简单意义 。
  1. 类型,也就是我们要获取的是哪个类型的指标数据,这里的-n,代表的是监控一些网络信息
  2. 类型参数,有的类型带有参数,有的没有 。这里的DEV,代表的是监控网卡信息
  3. 时间间隔,表示多少秒采样一次数据,这里的1就是1秒
  4. 次数,表示采样的次数 。比如时间间隔是3,采样次数是4,那么sar命令将会阻塞12秒钟
我们来看小小偷窥一下它的输出 。
# sar -n DEV 1 203:10:29 PMIFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s%ifutil03:10:30 PMlo30.0030.002.092.090.000.000.000.0003:10:30 PMeth06.002.000.380.320.000.000.000.0003:10:30 PMIFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s%ifutil03:10:31 PMlo39.0039.002.952.950.000.000.000.0003:10:31 PMeth011.0012.000.725.260.000.000.000.00Average:IFACErxpck/stxpck/srxkB/stxkB/srxcmp/stxcmp/srxmcst/s%ifutilAverage:lo33.0033.002.382.380.000.000.000.00Average:eth09.338.330.602.390.000.000.000.00非常非常规整的二维数组,不像top命令那种张狂的显示(top -b -n 1可以输出当前信息) 。可以很方便的使用sed,awk这样的工具进行处理 。
了解这命令构成的各个部分,我们就可以放心大胆的来看具体的参数,都有哪些了 。能不能抓到这只猹,在此一举 。
之所以说sar命令,站在鄙视链的顶端,那是因为它的参数是非常丰富的 。我们再也不需要各种IOStat、top、vmstat等五花八门的命令,只需要一个sar,就能统一天下 。
Linux下的资源监控,不外乎下面几种 。有磁盘、CPU、网络、内存、IO等 。不好意思,sar都能监控到,就是这么目空一切 。
?
和sar比起来,其他Linux命令都是猹

文章插图
 
??
接下来,我们就来漫游一小把 。
1. CPU信息我们就先从cpu信息开始说起 。作为计算机的大脑,作为一个指挥者,我们要监控它的一举一动 。实际上,对于CPU有下面三种监控 。
?
和sar比起来,其他Linux命令都是猹

文章插图
 
??
(1)利用率,使用sar -u,我们看下它的执行结果 。可以看到每种类型的使用情况,和top命令种的意义,是一样的 。
# sar -u 1 103:37:39 PMCPU%user%nice%system%iowait%steal%idle03:37:40 PMall0.250.500.500.000.0098.75Average:all0.250.500.500.000.0098.75复制代码(2)负载,使用sar -q,同样的,和top的参数意义是相似的 。除了load值,它还显示了等待队列的长度,对于排查排队问题非常有帮助 。
# sar -q1 103:40:15 PMrunq-szplist-szldavg-1ldavg-5ldavg-15blocked03:40:16 PM04680.020.040.000Average:04680.020.040.000复制代码(3)中断,使用sar -I,注意i是大写的 。由于有不同的换算方式,所以中断的参数,分为默认、SUM、ALL等 。
# sar -I SUM 1 203:44:36 PMINTRintr/s03:44:37 PMsum1118.0003:44:38 PMsum1024.00Average:sum1071.00(4)上下文切换,使用sar -w,它经常与监控swap交换分区的使用情况的sar -W搞混,所以要注意 。
# sar -w104:08:33 PMproc/scswch/s04:08:34 PM0.001686.002. 内存信息?
和sar比起来,其他Linux命令都是猹

文章插图
 
??
看完了CPU就再看内存 。CPU跑满了机器可能表现就是慢点,内存跑满了可是要死人的 。
内存主要是分为下面这些部分,我们平常监控的,主要是物理内存、虚拟内存、内核等 。
(1)内存利用率,使用sar -r命令 。有些sar版本可能会有sar -R,但一般小写的就够了 。
# sar -r 1 103:48:39 PM kbmemfreekbavail kbmemused%memused kbbufferskbcachedkbcommit%commitkbactivekbinactkbdirty03:48:40 PM16638842650804605769278.4501001040695442890.064915476582184100Average:16638842650804605769278.4501001040695442890.064915476582184100复制代码(2)swap交换分区 。对于swap分区来说,就可以使用sar -S 。效果如下 。如果想要看交换分区的使用情况(非容量情况),就要切换到sar -W命令 。


推荐阅读