业务系统 Over 阿里云性能压测的最佳实践

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 业务系统性能压测的最佳实践压测工具的选择目前主流的压测工具有abJmeter阿里云PTS如何来选择呢,我们建议如果是简单压测,可以直接使用ab来进行,它可以通过一条命令来快速的发起指定并发数的请求。

业务系统性能压测的最佳实践

压测工具的选择

目前主流的压测工具有

  1. ab
  2. Jmeter
  3. 阿里云PTS

如何来选择呢,我们建议如果是简单压测,可以直接使用ab来进行,它可以通过一条命令来快速的发起指定并发数的请求。但如果需要进行复杂的压测,建议使用后两者:

Jmeter是开源的压测工具,可以实现非常复杂的压测需求,比如设定一个包含很多URL的场景、配置一个施压集群来发起压测测试等等,而阿里云PTS服务,相较于Jmeter增加了许多独特的功能,比如:

  1. 施压流量来自真实CDN节点,最大限度模拟真实流量的路径
  2. 纯SaaS,无需额外安装和部署
  3. 兼容Jmeter脚本,可以平滑的复用之前的jmx脚本文件
  4. 配置界面所见即所得,对于新手非常友好

所以,我们建议大家根据实际的压测需求来选择压测工具。另外,如果您对PTS感兴趣,可以前往PTS控制台进一步了解。


阿里云上业务压测流程上的注意事项

施压前

  1. 对业务系统容量有一个预估,比如QPS、并发用户量
  2. 确定好压测时间和压测环境,尽量不要直接对生产环境压测,避免影响业务
  3. 若链路上存在SLB,建议至少使用4台施压机来压测,施压机越多,SLB的转发会越均衡
  4. 合理安排施压机的压测能力,若单台施压机无法满足施压需求,可以构建Jmeter施压集群或者使用PTS进行压测
  5. 若链路上存在安全模块,如高防、Web应用防火墙等,建议对施压机的源IP添加白名单,避免施压机被安全模块拦截

施压中

  1. 密切关注被压测的模块的各项监控
  2. 当出现瓶颈时就可以考虑停止或延迟若干分钟停止压测,避免产生无效的压测流量

施压后

  1. 结合业务数据对施压结果进行分析,确定系统是否可以达到预期的目标
  2. 出现瓶颈后,需要及时优化业务程序

压测结果相关

如何判断目标系统是否出现瓶颈?

判断瓶颈的方法非常多,比较简单的方法之一是增加并发用户数量,查看目标系统的TPS是否同步上涨,如果没有出现增加,甚至出现了下降,说明业务系统处理每个请求的时间变长,可以近似理解为此时的业务系统就出现了瓶颈。

并发用户、RPS、TPS如何解读

名词的定义千差万别,但归根结底的形容都是类似的,以下可以作参考:

并发用户:施压机上同时去请求的用户数量,比如500个并发用户,配置的施压目标是串行的两个URL,那么施压过程中,就会有500个客户端,不停地去请求URL 1和URL 2,用户之间的请求互不影响,并发的请求,而每个用户是先请求URL 1,得到结果后在请求URL 2,得到结果后再循环请求URL 1,以此类推。

RPS:在PTS中,RPS被定义为施压机每秒发出的请求数

TPS:在PTS中,TPS被定义为压测目标每秒执行的事物数,若目标系统是基于HTTP(S),可以理解为每秒能够执行多少HTTP请求。

那么有的同学会问了,TPS和RPS有什么差别呢?在正常情况下,RPS的数值近似等同于TPS,TPS对于一个系统来说,是恒定的,但只要施压机性能还够,RPS还可以提升,只是此时目标系统已经无法处理,可能会出现连接失败、请求超时等异常的响应,那么此时,RPS是大于TPS的,需要及时停止施压并分析目标系统为何会出现异常

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
108 2
|
9天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
24 3
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
3月前
|
消息中间件 Kafka 测试技术
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能
|
3月前
|
监控 Java 测试技术
实战派必看!Python性能测试中,JMeter与Locust如何助力性能调优
【8月更文挑战第6天】性能优化是软件开发的关键。本文介绍JMeter与Locust两款流行性能测试工具,演示如何用于Python应用的性能调优。JMeter可模拟大量用户并发访问,支持多种协议;Locust用Python编写,易于定制用户行为并模拟高并发。根据场景选择合适工具,确保应用在高负载下的稳定运行。
132 4
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【8月更文挑战第6天】在数字化时代,确保软件在高并发下的稳定性至关重要。Python 提供了强大的性能测试工具,如 JMeter 和 Locust。JMeter 可配置复杂请求场景,而 Locust 则以 Python 脚本灵活模拟真实用户行为。两者结合,可全面评估系统性能。例如,对电商网站进行测试时,JMeter 模拟登录请求,Locust 定义浏览和购物行为,共同揭示系统瓶颈并指导优化,从而保证稳定高效的用户体验。
101 1
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
130 3
|
3月前
|
测试技术 持续交付 Apache
深度挖掘:Python性能测试中JMeter与Locust的隐藏技能🔍
【8月更文挑战第5天】随着软件规模扩大,性能测试对系统稳定性至关重要。Apache JMeter和Locust是两大主流工具,各有千秋。本文探索它们在Python环境下的进阶用法,挖掘更多性能测试潜力。JMeter功能强大,支持多种协议,可通过命令行模式执行复杂测试计划,并与Python集成实现动态测试数据生成。Locust基于Python,通过编写简洁脚本模拟HTTP请求,支持自定义请求及与Python库深度集成。掌握这些技巧可实现高度定制化测试场景,有效识别性能瓶颈,提升应用稳定性。
127 1
|
3月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
129 0
|
14天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
40 3