一周的性能测试与性能调优过程总结

 

2011-5-92011-5-14这周主要在进行性能测试及性能调优,今天下班前最后的测试结果基本满意,看到每天性能都有提升,虽然整个过程有点小郁闷,但是看到每天的付出都有明显的回报还是有点小兴奋,现总结如下。

基本测试场景:

负载服务器:nginx

Web服务器:两台tomcat

数据库:mysql

硬件:Dell poweredge R710 4cpu 8g内存、千兆网卡及带宽

缓存服务器:memcached

压力测试工具:loadrunner x 3

 

测试基本要求:

800并发,平均响应时间<=1s

 

最终测试结果:

3000+并发,平均响应时间<1s

 

 

1天:

并发不到1000时有大量错误如超时、bad gateway…

过程分析:

分析jvm得知,当新生代和旧生代内存都达到100%时内存不释放,最终导致内存溢出,开始怀疑jdk6 u24版本到某个临界点存在bug,因为以前听HW公司的专家说过jrockit曾存在过类似的问题,bea曾花费很长时间解决,尝试各种办法解决中….

 

2天:

并发1000时有大量错误如超时、bad gatewa,但是程序运行平稳

过程分析:

更换jdk的不同版本问题依旧,所以觉得问题应该还是出现在程序上,事实上通过仔细分析jvm GC过程可知,GC还在频繁的进行中只是没有内存被回收回来,最后发现所有程序包中web.xml 默认的session  timeout时间是20分钟,于是眼前一亮觉得问题应该就是在这里了,当访问总数达到一定程度时20分钟内把jvm耗尽,兴奋ing,其实这种可能我早上在地铁里就想到了

 

3天:

并发1000时有大量错误如超时、bad gateway,但是程序运行平稳,调优进行中

过程分析:

郁闷一天,服务器性能没有压力,但是就是性能上不去,有力无处使,但是此时我已经不怀疑jvmmysql的性能瓶颈了,因为这两部分优化,心里比较有底,而且也系统分析过,甚至有点怀疑测试工具是否有问题以及测试人员是否正确使用loadruner,网络问题等,因为有一次发现一台服务器断过网,于是去机房调整交换机、网线等,发现断网的服务器网线的确可能存在问题(谁动过我的网线),调整后好一点点,但问题依旧,郁闷死个人啊O(_)O

 

4天:

并发2000,响应时间0.5s左右,程序运行平稳

过程分析:

接着第三天的郁闷,地铁和公交上都在思考瓶颈的来源,幸好不是自己开车O(_)O,发现调优过程中忽略了一个基本问题,忘记系统的分析 nginxlinux系统内核日志,彻底被自己打败了,经验不足啊,也木有人能帮到我,发现之前的bad gateway nginx找到来源了,这里有对应的错误 connect fail,问了一下google,发现很多人说linux内核bug,需要重新编译内核,有了上面的经验,让我深知有问题先从自身查起,不要轻易怀疑用户群比较大的优秀软件,接着查系统日志,发现有类似ip_conntrack: table full, dropping packet的错误,暗喜应该就是他了,原来丢包了啊,我说怎么有连接超时和 bad gateway,进行linux 内核tcp相关参数调整,重新测试调整,尽然成了,就这么成了,再次兴奋ing

5天:

并发3000,响应时间0.6s左右,程序运行平稳

过程分析:

系统的研究和分析linux  tcp相关参数,根据应用场景调整重新测试,第一次运行良好,第二次2000并发迭代了100次再测试, Fuck 四台服务器网卡全部down了,可惜了我的研究结果啊,还不如昨天的简单调整呢,去机房把所有网卡重启了一遍,在次调整了几个可能导致问题原因的参数,再测试,进行tcp 监控发现系统运行稳定了,测试结果基本满意,只是3000*100并发时平均响应时间1S多了一点点,再次调整nginx ,开启缓存、GZIP等,奇迹出现了,性能又有50%以上的提升,请求最长的平均时间0.6秒左右,可惜三台load runner(非正版)用负载进行测试的最大并发数就是3000,不能测试出服务器平均响应时间1S内的极限,待有空时继续验证。

 

小插曲:

期间,项目经理说在之前的项目经验中中发现在tomcat配置数据源比配置在应用里性能有很高提升,这个我一直持怀疑态度,都用一样的连接池(DBCP),没有理由啊,后经过大并发持续测试发现,性能基本相当,测试结果甚至略低于在应用中配置的结果,但是这个应该与测试环境、网络环境有关,误差可以忽略。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值