关于jmeter压测性能的一些测试和思考

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 最近一个项目着急上线,要求大并发,目标是支持一万并发,于是用压力测试软件jmeter测试了一番,结果总是让人不可思议,全是jmeter连接目标服务器超时请求,特此记录一下。如果哪位知道原因请留言告知,谢谢! 测试文件均采用phpinfo测试页面,页面大小大概70-80k。
最近一个项目着急上线,要求大并发,目标是支持一万并发,于是用压力测试软件jmeter测试了一番,结果总是让人不可思议,全是jmeter连接目标服务器超时请求,特此记录一下。如果哪位知道原因请留言告知,谢谢!
测试文件均采用phpinfo测试页面,页面大小大概70-80k。采用千兆交换机内网直连,jmeter压测服务器8核心96G内存,nginx服务器12核心96G内存。
网站架构比较简单,用的nginx+php-fpm,nginx(单个)和php-fpm(单个)在同一台服务器上,通过tcp转发请求到后端,所有参数(内核参数、nginx配置文件、php-fpm配置文件)均优化过。理论上服务器的硬件和网络也没有任何瓶颈。
第一次使用3500并发,42000用户数测试
9239个请求 超时,也就是说请求还没到nginx服务器,那么可能是nginx的问题导致的
第二次在架构上加一层前端lvs,也就是单台lvs转发到单台nginx,然后nginx转发到单台php-fpm上,并发和用户数保持不变
8336个请求超时,比前端直接用nginx好点,但是这结果太坑
第三次在lvs后面再加一台nginx和php-fpm,也就是单台lvs转发两台nginx,然后nginx转发各自的php-fpm上,并发和用户数保持不变
6816个请求超时虽然比上面结果好了一点,但是这个明显不是我要的,这里也说明跟后端的php-fpm没关系了,如果是后端瓶颈应该是502或者504之类的错误,要不就是jmeter软件本身的问题导致
第四次去掉了lvs这一层,在nginx服务器上绑定一个IP别名,还是使用一个nginx, 同一个域名 使用两个虚拟主机配置,只是监听的IP地址不一样而已,用DNS轮询方式,注意如果绑定hosts只会请求第一个绑定的IP上,那就没效果了。继续3500并发,42000用户测试
0个请求超时,这才是我需要的效果啊!说明和单台nginx的配置、jmeter软件本身也没啥关系了。以后的测试都去掉了lvs这一层。而且全部都变成了单台nginx
第五次还原到单条A记录方式,减少一半的并发数,使用1750并发,42000用户数测试
800个请求超时,郁闷中~~
第六次还原到单条 A记录方式,减少一半的并发数和用户数, 使用1750并发,21000用户数测试
537个请求超时,继续郁闷中~~
第七次闲的无聊直接压测单台nginx的静态页面index.html,并发和用户数还原到最开始的
0个请求超时结果不出所料
第八次使用单台nginx的fastcgi_cache缓存index.php页面,使用1750并发,42000用户数测试
1280个请求超时,这里我觉得再怎么说应该也会比第五次的结果好吧!没想到超时请求更多,尼玛,请原谅我三观尽毁~~
第九次是基于上面用户数减一半的测试结果,不出意外应该会减少一半吧
354个请求超时,数量比上面少了很多,是nginx那台服务器扛不住吗?
第十次使用单台nginx的proxy_store缓存index.php页面,配置肯定都正确,看看 1750并发,42000用户数测试结果吧
2171个请求超时,此时心中一万只草泥马掠过~
有知道答案的哥们欢迎留言啊~
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
20天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
49 1
|
1月前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
33 2
|
1月前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
74 3
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
68 3
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
52 1
|
1月前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
56 7
|
2月前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第10天】随着互联网应用规模的不断扩大,性能测试变得至关重要。本文将探讨如何利用Python结合Apache JMeter和Locust,构建高效且可定制的性能测试框架。通过介绍JMeter和Locust的使用方法及Python的集成技巧,帮助应用在高负载下保持稳定运行。
72 2
|
2月前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第2天】随着互联网应用规模的不断膨胀,性能测试变得至关重要。本文将介绍如何利用Python结合Apache JMeter和Locust构建高效且可定制的性能测试框架。Apache JMeter是一款广泛使用的开源负载测试工具,适合测试静态和动态资源;Locust则基于Python,通过编写简单的脚本模拟HTTP请求,更适合复杂的测试场景。
72 3
|
2月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
78 4
|
2月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
164 3