如何分析性能瓶颈
结果分析的方法和角度有很多,关注的指标可能也不一样。
今天给新同事讲解了一下怎么根据LR压测的结果定位性能瓶颈,顺便总结了一下自己以往的套路。
1、首先判断是否是应用程序本身的问题,根据网络吞吐量、cpu使用率和上下文切换水平三个指标进行分析。
2、然后判断是否内存问题,内存最主要的两种情况是内存泄露和内存不足;
通过pages/sec初步判断是否存在内存问题,如果pages/sec持续高于几百,则有可能需要增加内存,以减少换页的需求,此时还应该进一步研究 页交换活动。如果pages/sec指标过高(几百),而硬盘数据流量不高(几百kb/s)则可确定是内存不足问题,如果pages/sec指标较高(几百),而此时硬盘数据流量也很高(几千KB /S),则可以判定是磁盘问题;
然后通过 available mbytes来判断是否存在严重内存泄漏问题,如果该值很小(<4M),则说明计算机上总的内存可能不足,或者某个程序始终占用而没有释放内存,系统存在严重的内存泄漏问题:process\private bytes、process\working set计数器的值会升高,同时available bytes的值会降低。
3、磁盘问题
如果页面读取操作速率page reads/sec指标的值很低,同时%disk time和avg.disk queue length的值却很高,则确定为磁盘瓶颈,但如果Avg.disk queue length增加的同时page reads/sec页面读取速率指标并未降低,则确定为内存不足。
4、排除内存因素后,如果%processor time持续大于90%,并且%interrupt time的值持续大于15%,同时网卡和硬盘的值比较低,可以断定处理器负荷过重,无法满足业务增长需要,处理器是系统瓶颈点;如果Processor queue length大于2,而处理器利用率一直很低,则存在处理器堵塞。