测试目的
让开发者对apaas项目的性能负载和容量有准确的认知,同时,协助技术管理者更好的管
理业务系统性能质量,科学评估业务系统的负荷,拒绝盲目上线。
测试工具
性能工具:Jmeter5.4.1
监控平台:grafana+influxdb1.8+premotheus+node_exporter
测试环境
应用和数据库部署在同一个环境,包括ngnix,mysql,redis和3个应用服务,服务运行容器采用undertow
指标 | 参数 |
---|---|
机器 | 8C16G |
操作系统 | Linux |
集群规模 | 单机 |
应用 | 用户服务,助手服务,运维服务 |
数据库 | mysql8 |
测试场景
**情况01-模拟低延时场景,**用户访问接口并发逐渐增加的过程。接口的响应时间为20ms,线程梯度:5、
10、15、20、25、30、35、40个线程,5000次;
- 时间设置:Ramp-up period(inseconds)的值设为对应线程数
- 测试总时长:约等于20ms x 5000次 x 8 = 1200s = 13分
**情况02-模拟高延时场景,**用户访问接口并发逐渐增加的过程。接口的响应时间为500ms,线程梯度:
100、200、300、400、500、600、700、800个线程,200次;
- 时间设置:Ramp-up period(inseconds)的值设为对应线程数的1/10;
- 测试总时长:约等于500ms x 200次 x 8 = 800s = 13分
测试结果
1.获取智能助手接口(低延时)
压测低延时场景(15ms)
设置响应断言时间3s
13:10开始-13:42结束
- 汇总报告
- 聚合报告
- TPS
- RT
- grafana
2.获取通讯录接口(高延时)
高延时场景(1500ms)
设置响应断言时间30s
注:这个接口延时太高,导致压测没有全部完成
16:20开始-17:40结束
- 汇总报告
- 聚合报告
- TPS
- RT
- grafana
3.获取资产数据接口(中延时)
中延时场景(400ms)
设置响应断言时间10s
9:55开始-11:08结束
- 汇总报告
- 聚合报告
- TPS
- RT
- grafana
测试结论
分别对低中高延时接口压测,低延时场景接口的rt基本上稳定,tps较高;对于中高延时的接口,rt随着梯度的上升增高,tps也处于较低的水平。
优化点:首先我们mysql,redis和3个应用都部署在相同服务,占有服务器资源较大,可以分开服务器部署;其次是对接口的优化以及sql的优化,降低响应时间;对于不必要的字段删除,减少传输的数据量。