为了账号安全,请及时绑定邮箱和手机立即绑定

Linux的系统性能如何检测?

Linux的系统性能如何检测?

HUWWW 2018-12-30 10:06:45
Linux的系统性能如何检测?
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

网络使用中,我们需要简单的监测一下Linux系统的:CPU负载、内存消耗情况、几个指定目录的磁盘空间、磁盘I/O、swap的情况还有就是网络流量。 今天上海快网介绍Linux的系统性能监测参数获取方法。

Linux下的性能检测工具其实都有很多。

mrtg就是一个很不错的选择。不过用mrtg就要装sysstat、apache、snmp、perl之类的东西。而且安装也要好几个步骤,似乎比较麻烦。本来也想直接调用sar、vmstat之类的命令,parse一下结果就算了。哪知道发现不同的版本的linux这些命令的结果也都是不一样。既然要按版本 parse它们的结果,那还不如直接去系统里面获得算了。于是研究了一下sysstat和gkrellm的源代码,找到监测性能的数据所在。

1、CPU

在文件"/proc/stat"里面就包含了CPU的信息。每一个CPU的每一tick用在什么地方都在这个文件里面记着。后面的数字含义分别是: user、nice、sys、idle、iowait。有些版本的kernel没有iowait这一项。这些数值表示从开机到现在,CPU的每tick用在了哪里。

就是cpu0从开机到现在有 256279030 tick用在了user消耗,11832528用在了sys消耗。所以如果想计算单位时间(例如1s)里面CPU的负载,那只需要计算1秒前后数值的差除以每一秒的tick数量就可以了。

2、内存消耗

文件"/proc/meminfo"里面包含的就是内存的信息,还包括了swap的信息。

3、磁盘空间

从gkrellm的源代码看,这个是一个很复杂的数据。

4、磁盘I/O

磁盘I/O的数据也同样比较复杂,有些版本看/proc/diskstats,有些版本看/proc/partitions,还有些版本至今我也不知道在那里看……不过可以看到数据的版本也像CPU那样,需要隔一段时间取值,两次取值的差就是流量。

5、网络流量

网络流量也是五花八门,不过基本上都可以在/proc/net/dev里面获得。同样也是需要两次取值取其差作为流量值。


查看完整回答
反对 回复 2019-01-11
  • 1 回答
  • 0 关注
  • 846 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信