一、测试服务器:
linux centos 8G内存 4核
二、测试场景:
1、内部测试环境:进入门列表,开门(由于开门是调用第三方接口,开门屏蔽了第三方门禁,做了一个假接口测试)
1)100个用户 1S上1vuser 5 min 30 min
2)200个用户 1S上1vuser 5 min 30 min
3)500个用户 1S上1vuser 5 min 30 min
1-1:测试情况:
1)响应时间平均在10s,事务通过率为99.9%,CPU最高大60%,内存变化不大,未压测时程序占用内存已有5g。
2)响应时间平均在20s,事务通过率为88%,CPU最高60%,内存5g-6g,事务失败原因是connect timeout
3)由于场景2出现大量connect timeout,调整一下lr的连接数和加多了一台压力测试负载机子,场景3依然出现大量connet timeout,内存占用达到90%,内存占用较大,但是场景2的事务通过率可大99%在调整后。
4)同时使用top命令观察到java占用占用内存一直没有释放(一天后观察)
1-2:测试结论:
该系统占用内存较大,且java程序占用的内存没有释放。
问题定位,向运营申请将系统内存降为4g,再进行压力测试,测试结果,该系统本身内存占用就3g多,虽然内存不挺增加,但是系统并没有挂掉。
2、uat测试环境: 进入门列表,真实调用第三方接口
1)100个用户 1S上1vuser 5 min 30 min
2)200个用户 1S上1vuser 5 min 30 min
3)500个用户 1S上1vuser 5 min 30 min
备注:根据实际测试情况调整并发用户数
2-1测试情况:
1)场景1压力上到100vuser时,系统挂掉,提示502bad gayway,503不能访问
观察内存占用较大,
二、问题定位
压测真实的门禁接口,未上到100时挂掉,可以确认问题性能瓶颈在调用第三方接口,预估是在webservice请求第三方接口,太多的请求和保持导致线程和内存无法承受。
方法:对第三方的webservice请求中每个请求都独立建立链接,吧webservice的请求做成连接池的形式。
三、调优
开发将门禁系统独立系统做成阿里云LBS负载均衡.3.5两台机子 内存分别为8g
四、压测
压测100vuser用户未挂,压测到200vuser挂掉了,内存占用分别都是4g左右,但是java占用的内存一直没有释放,问题定位是tomcat内存,下载jvm直接监控,发现内存一直蹦高,且未释放。(jvm机制内存使用达到多少就会自动释放已停用的线程)
五、调优
tomcat最大permgium由原来的502栈内存调高为1048g;清除系统缓存数据
六、压测
压测200没有挂掉,有台机子的内存可达95%,依然存在风险,但200vuser持续运行0.5h,系统并无发生崩溃。
测试监控使用zabbix。
七、调优措施:
1)tomcat内存加大 2)加上开门列表缓存机制 3)负载均衡 4)定期清缓存
门禁性能测试总结
发表于:2017-08-06
作者:scale_ee
来源:
 相关文章
性能测试知识科普之三大模型 性能测试的几个指标,你完全了解吗? 大数据性能测试怎么做?看完这篇终于... 压力测试如何准备数据?思路来了! 要不要做全链路压测?看完这篇你就明... 由浅入深!一文5张图教你做性能测试~- 周排行
- 月排行
-   软件测试之异常测试
-   MongoDB大数据高并发读写性能测试报告
-   可靠性测试教程:优秀实践综合指南
-   可靠性测试的基础知识——软件可靠性测试
-   压力测试如何准备数据?思路来了!
-   性能测试准入准出规范
-   性能测试常见术语浅析
-   Docker容器网络性能测试和调优策略
-   软件测试之异常测试
-   如何使用k6做性能测试
-   性能测试准入准出规范
-   稳定性测试怎么做,这篇文章彻底讲透了!
-   干货|性能测试模型初探及应用方法分析
-   可靠性测试教程:优秀实践综合指南