PTS性能测试企业应用实践

  1. 云栖社区>
  2. 博客>
  3. 正文

PTS性能测试企业应用实践

叶康铭 2019-02-26 22:52:20 浏览833
展开阅读全文

企业应用云上性能测试

【业务场景】日程任务管理网站从本地IDC机房迁移上云,在业务切换到云上时需要提前预估下系统性能情况。

【业务指标】 满足同时对集团内的1000用户数并发访问,300用户数并发对日程进行创建、修改、删除等操作,100用户数并发登录。在并发较高的情况下不会产生用户需要等待过长响应时间。

【业务流程】

  1. 用户登录:登录用户的信息来自文件输入
  2. 创建日程:日程信息为随机生成
  3. 日程修改:由上一个创建事件输出的id进行修改
  4. 查看日程:随机获取月、周、日的日程信息

【压测配置信息概要】

  1. 资源包购买:因目标是各api的并发之和为2000,故购买峰值5000并发的资源包。
    image
  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

  1. 压力配置:并发模式,每个API按照 100:300:300:1000:300的最大并发配置,起步设为10%。
    image
  2. 监控信息:采用PTS集成的监控功能(确实很赞!!!)
    image

image
image

【压测过程及结论】

  1. 首先测试按照10%的施压配置进行测试,每次递增10%(每次持续1分钟),到40%时开始发现有和日程相关的api请求成功率开始下降,经排查DMS、CloudMonitor等工具排查后诊断为数据库死锁导致。死锁原因经过分析后由于项目中事务调用产生的PAG范围锁,经过优化后恢复正常。
  2. 第二次压测直接全局调速40%, 压力测试进行到80%时在云监控见到的ECS、RDS内存消耗超过90%,rt明显增高到4000+ms并有超时的情况。进行ECS增加4个节点和RDS的升配之后问题解决。
  3. 第三次压测直接全局调速70%, 整体系统运行正常,施压到100%时getSchedule偶发会出现rt过大或者直接错误的问题。经过一系列排查该api调用参数范围过大时会导致处理时间过长或者直接提示超时,调整tomcat连接超时时长及对该api输入参数范围进行限制解决了该问题。
  4. 第四次压测,施压配置从10% - 100%,压测过程中及在100%压测5分钟的情况下系统rt稳定,无失败的情况出现,系统利用率较好。

**亲测感受:
非常喜欢PTS性能测试工具,对于新手了解文档说明后都可以开箱即用,配置及操作简单,都是可以在控制台完成一系列的操作。
对于产品设计有很多贴心的小细节,例如域名绑定IP即可对单点做性能测试,例如实例及ARMS监控集成都方便了开发者在压测时的操作,例如可以动态去调速全局或单个串联链路。对用使用者来说即高的提升了测试效率及便捷,很赞!!!**

附上压力测试过程中截图
image
image
image
image
image

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

网友评论

登录后评论
0/500
评论
叶康铭
+ 关注