最近几年做了很多性能优化的事情,但是一直没有形成一套理论,也没有很好的形成一个好的排查问题的流程,每次做优化,大多是经验式的查找,最近看了一下这本书《linux system and performance monitoring》,写的太好了,仔细看了一遍,下面的是读书笔记和个人的一些体会。


1.性能优化



CPU,Memory,IO,Network )之间达到平衡和取舍。



    不同子系统之间会相互影响,某一个子系统过高的使用率,会导致问题:

    1)大量的页调入请求会填满队列



    2)网卡设备上大量的吞吐,会导致CPU load过高



    3)管理空闲内存队列也会消耗CPU



    4)大量的磁盘写请求,会消耗CPU和IO带宽


2.应用类型



    要找到系统瓶颈,应该先了解应用类型:



    1)IO密集型



    大量消耗内存和存储系统,对CPU和网络(存储系统是基于网络的除外)要求不高。这种应用使用CPU来发起IO请求,然后进入sleep状态。比如数据库。



    2)CPU密集型



    需要CPU进行批处理和数学计算。比如:web servers,mail servers,rendering server


3.找系统性能瓶颈的方法:



    最好的找性能瓶颈的方法,是先对在正常满足性能要求的情况下,统计系统的各个参数,做为baseline.



    然后在高压力下,当系统性能满足不了需求时,与baseline进行对比,找到性能问题。

4.常用的性能监控工具: