业务迁移场景下的性能压测实践

性能测试是开发运维过程中,用于预估系统性能瓶颈的常规手段,本文来自 PTS 用户 叶康铭 在迁移企业网站过程中的性能压测实践,分为业务场景、业务指标、业务流程、压测配置信息和压测过程及结论 5 部分。


一、业务场景

日常任务管理网站从本地 IDC 机房迁移上云时,需要提前评估系统的性能瓶颈。


二、业务指标

  • 满足对集团内的1000用户的并发访问;

  • 300用户数并发对日程进行创建、修改、删除等操作;

  • 100用户数并发登录;

  • 在并发较高的情况下,用户不需要等待过长时间;


三、业务流程

  • 用户登录:登录用户的信息来自文件输入;

  • 创建日程:日程信息为随机生成;

  • 日程修改:由上一个创建事件输出的 ID 进行修改;

  • 查看日程:随机获取月、周、日的日程信息;


四、压测配置信息

1. 资源包购买:因目标是各 API 的并发之和为2000,故购买峰值5000并发的资源包;


640?wx_fmt=png


2. 业务上是一个流式过程,故放在一个串联链路中,按照业务模型进行 API 配置:


i.接口:login,输入参数:username、password,来源文件参数;

ii.接口:newSchedule,输入参数:taskInfo,输出参数:taskID, eventState;
iii.接口:setSchedule,输入参数:taskID, taskInfo,输出参数eventState;
iv.接口:getSchedule,输入参数:taskID,输出参数:taskInfo, eventState;
v.接口:delSchedule,输入参数:taskID,输出参数:eventState;


3. 压力配置:并发模式,每个API按照 100:300:300:1000:300的最大并发配置,起步设为10%;


640?wx_fmt=png


4. 监控信息:采用 PTS 集成的监控功能;


640?wx_fmt=png


五、压测过程及结论

1. 第一次压测,按照10%的施压配置进行测试,每次递增10%(每次持续1分钟),到40%时开始发现,和日程相关的 API 请求成功率开始下降,经DMS、CloudMonitor等工具排查后,诊断为数据库死锁导致。


经过分析,死锁原因是项目中事务调用产生的 PAG 范围锁引起,经过优化后恢复正常。


2. 第二次压测,直接全局调速40%, 当压力测试进行到80%时,云监控上见到的ECS、RDS内存消耗超过90%,RT明显增高到4000+ms,并初现超时的情况。


通过增加4个 ECS 节点,并对 RDS 进行升配,从而解决问题。


3. 第三次压测,直接全局调速70%, 整体系统运行正常,施压到100%时getSchedule偶发会出现 RT 过大或者直接错误的问题。经过一系列排查,该 API 调用参数范围过大时会导致处理时间过长或者直接提示超时。


调整 Tomcat 连接超时时长,并对该 API 输入参数范围进行限制,解决了该问题。


4. 第四次压测,施压配置从10%升高到100%,压测过程中,在100%压测5分钟的情况下,系统 RT 稳定,无失败的情况出现,系统利用率较好。


六、亲测感受:
优势:

文档详细,开箱即用,配置及操作简单,可在控制台上完成一系列的操作。


产品细节:

域名绑定 IP 即可对单点做性能测试,例如实例及 ARMS 监控集成,都方便了开发者在压测时的操作,再例如可以动态去调速全局或单个串联链路,提升了测试效率。


关于并发虚拟用户、RPS、TPS的区别可以参考官方文献:
https://help.aliyun.com/document_detail/29343.html


640?wx_fmt=jpeg

加微信群,和PTS面对面


文章缩略图

© Photo by Spencer  Wing on Unsplash


©每周一推

第一时间获得下期分享


640?wx_fmt=gif

Tips:

# 点下“看”❤️

# 然后,公众号对话框内发送“Polo衫,试试手气??

# 本期奖品是 Aliware 定制 Polo衫

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值