在去年12月,没更新什么博客,有点小遗憾。12月的工作都是在做一个迁移方案以及相关代码的编写,相关性能测试。这段时间对于linux的系统性能相关参数,以及相关的监控工具学到了很多,相关资料也看了不少,算是有些小理解了。
在这段时间,其中oscon2009-linux-monitoring.pdf这个文档介绍的最详细,也比较系统,学到了很多。有需要的可下载相关英文文档供学习。
性能调试是发现系统瓶颈的过程,可以通过调试正在运行的系统来发现并解决系统瓶颈问题。评测性能的指标通常有:
Cpu memory IO Network
这些子系统具有高度的依赖性,它们中的任何一个使用率过高都可能很容易地导致其它子系统出现问题。
对于CPU,memory的性能监控,通常通过vmstat指令,查看相关load, swapd,free mem, in,cs, sy,us,wa,id等相关参数:其中load:CPU运行中的进程数+等待的进程数(avg load一般在cpu数+2以下)swpad:虚拟内存的使用大小。in:中断的次数. cs:上下文切换的次数,sy:系统使用CPU所占百分比。US:应用程序使用CPU所占百分比 (sy,us在7:3为佳)。 wa:cpu wait IO所占的比例,此值过大一般是IO有性能瓶颈的问题了。还有id:CPU空闲所占百分比。
IO,则通过vmstat,iostat等相结合指令。
对于网络的监控比较复杂,常用指令有netperf,tcptrace等。
这些性能参数的监控,对于评估系统性能,以及在定位相关系统瓶颈,应用程序可能存在的问题等定位上有很大的帮忙 。其中oscon2009-linux-monitoring.pdf 此文档我简单翻译成了中文,有需要的朋友可以自行下载。希望能有所帮助。(下载地址:http://vdisk.weibo.com/s/mb-iX/1357024183)
对于性能监控,对于开发人员应该是很重要的,因为通过调试可以很清楚的知道自己写的服务的性能瓶颈在哪,以及是否有相关性能问题等。这些也是开发人员了解必备的。