性能优化的方法-之一 性能测试环境因素
前几年做了很多性能测试和性能优化,也看了很多国内国外的性能优化方面的资料,现在把血泪中得来的经验教训跟大家聊聊,看看对自己的项目是否有用。
?
性能优化之前首先进行性能测试:
?
性能测试的要点:
?
(1)排除性能测试中的干扰因素。
?
??????? 例如如果对C/S模式服务器进行测试,那么就尽量使用LoadRunner的TCP方式来进行,避免在测试过程这中,客户端进程运算和IO等等。尽量避免周边系统给测试目标带来的干扰。
?
?????? 例如对性能非常敏感的情况下,使用自用交换机搭建网络、或使用直连线等等
?
?? 这些,都是为了保证能得到稳定且准确有效的性能测试。尤其是对一个产品进行性能优化,可能需要反反复复的进行性能测试,来确认性能优化的效果,如果性能测试结果不稳定,受环境干扰很大,做起来就非常困难了。
?
(2)良好的监控手段
?
在性能测试这,应该充分建设好监控设施,例如使用JMX、使用操作系统命令、数据库的监控SQL等等来监控系统性能测试期间的各种数据变化(有和性能曲线对应的图最好)。有了这些数据,分析起来就容易多了。
?
最麻烦的是,这些监控手段,很有可能会影响到系统的性能,所以应该是能够简单加上监控,也能简单关闭这些监控设施,把有监控情况下的性能图表和没有监控下的图表仔细对比分析。
?
(3)最大能力测试
?
在开始调优之前,首先需要明确,系统的性能,大多数情况下 ,受限于硬件、周边系统的能力,例如,一套软件产品安装在客户的环境里,可能会受到客户网络带宽的影响,百兆网、千兆网、双千兆网卡bind差别很大;如果需要调用客户的数据库,客户数据库的类型、客户数据库提供了多大的存取能力,都很大程度限制了系统的性能;如果是自己的产品,那么,CPU的最大能力、网络的最大能力、文件系统最大能力、DB调优的情况,都是系统性能的关键因素,在调优之前,首先应该关注,在现有的周边环境(硬件、软件、网络)下,产品自己理论上能做到的最高效率是多少呢?没有这个数据,后期的调优就没有控制和准确的概念了。
?
?
先写这些吧,后面明天再继续写吧。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?