linux命令学习之sar命令--服务器性能监测

起因:老大说让我整一个简单的服务器性能监测程序。没别的就是输出当前服务器的信息,包括cpu占用和负载、磁盘占用和io、网络数据包的情况等。

过程:先去百度复制了几个脚本尝试了下,效果不怎么样。老老实实是的自己去写一个吧。

开工:先写了个流程。然后用echo的输出,干了两天(主要还是懒,这我心里还是有B数的)。。。。然后发现这脚本耗时太久了,如果用echo+grep去筛选信息,有很多项目会很耗时。

还有些根本无法输出。。。然后老大向我推荐了工具解决问题的思路。这样我找到了sar 命令。

查了下sar命令是这样被描述的,可以很符合我的情况。

---

sar命令可以从文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等方面进行报告

---

我的任务顺利完成,所以我要记一下这个命令的用法避免忘了

选项:

sar 命令来自于安装包 sysstat.x86_64(iostat也用这个),下面是他的一些选项。

-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息

举个例子

sar -udr -n DEV  3 1 -p | grep -vE ^\'平均时间|Average\'

我这里用了-u -d -r  -n  和DEV 分别输出了cpu 、磁盘、网卡的信息一目了然,当然还要明白这些输出项目的信息才行。

输出:

CPU     %user     %nice   %system   %iowait    %steal     %idle

10时27分37秒     all      0.33      0.00      0.00      0.00      0.00     99.67

10时27分34秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit

10时27分37秒   1339048    710204     34.66    316948    224832    314752     15.36

10时27分34秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

10时27分37秒      xvda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

10时27分34秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

10时27分37秒      eth0      8.00      7.00      2.28      1.47      0.00      0.00      0.00

10时27分37秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

10时27分37秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwjyds.html