关于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进行规格选择与性能压测。
目录
相关文章
|
25天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
30天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
104 3
|
22天前
|
监控 测试技术 PHP
性能和压力测试
【10月更文挑战第10天】性能和压力测试
109 60
|
1天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
8 3
|
7天前
|
缓存 监控 数据挖掘
C# 一分钟浅谈:性能测试与压力测试
【10月更文挑战第20天】本文介绍了性能测试和压力测试的基础概念、目的、方法及常见问题与解决策略。性能测试关注系统在正常条件下的响应时间和资源利用率,而压力测试则在超出正常条件的情况下测试系统的极限和潜在瓶颈。文章通过具体的C#代码示例,详细探讨了忽视预热阶段、不合理测试数据和缺乏详细监控等常见问题及其解决方案,并提供了如何避免这些问题的建议。
26 7
|
21天前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第10天】随着互联网应用规模的不断扩大,性能测试变得至关重要。本文将探讨如何利用Python结合Apache JMeter和Locust,构建高效且可定制的性能测试框架。通过介绍JMeter和Locust的使用方法及Python的集成技巧,帮助应用在高负载下保持稳定运行。
57 2
|
29天前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第2天】随着互联网应用规模的不断膨胀,性能测试变得至关重要。本文将介绍如何利用Python结合Apache JMeter和Locust构建高效且可定制的性能测试框架。Apache JMeter是一款广泛使用的开源负载测试工具,适合测试静态和动态资源;Locust则基于Python,通过编写简单的脚本模拟HTTP请求,更适合复杂的测试场景。
51 3
|
30天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
55 4
|
18天前
|
测试技术 PHP 开发工具
php性能监测模块XHProf安装与测试
【10月更文挑战第13天】php性能监测模块XHProf安装与测试
17 0
|
2月前
|
敏捷开发 安全 测试技术
软件测试的艺术:确保质量与性能的平衡之道
【9月更文挑战第24天】在软件开发的海洋中,测试是导航灯塔,指引着项目安全抵达质量的彼岸。本文将深入探讨软件测试的核心原则、方法论以及如何通过精心设计的测试策略来保障产品的可靠性和性能。我们将从测试的基础知识出发,逐步深入到高级测试技巧,最终展示如何通过实际案例来应用这些知识以确保软件的成功交付。