移动端压力测试
一、monkey APP性能测试
(adb shell monkey 1000
adb logcat | gerp START获取包名和activity名
adb shell monkey -p 包名 1000
)
二、压测查看那些指标
- TPS数值、CPU占用量、测试成功数量、error信息(服务器配置(CPU、内存、磁盘、网络I/O、进程数)、数据库配置(效率低下SQL、锁、缓存、会话、进程数)、中间件(线程池、JDBC连接池),应用(QPS、耗时、错误、同步异步、线程数、缓存队列)等方面考虑。
- 接口压测:压测主要观察的是多大压力下系统的性能会变得不可接受,或者白屏崩溃,从而分析系统额瓶颈,为后续优化做参考。
三、协同日历接口性能测试报告
1. 测试结论
此次预发压测3个接口,以UMP线上接口峰值调用量为依据,设置混合压测比例:接口getCalendar、getScheduleList(参数是4个月)、getScheduleList(参数是1周)按1:1:1.5的比例混合压测:
- getCalendar接口,在30线程并发时,接口平均时间52.14 ms,TP90时间62 ms,TP99时间84 ms,TPS 203.9。该接口UMP线上接口峰值5867次/5分钟,此次压测值相当于线上接口调用量的11.12倍。
- getScheduleList(参数是4个月),在30线程并发时,接口平均时间52.14 ms,TP90时间54 ms,TP99时间86 ms,TPS 204。
- getScheduleList(参数是1周),在30线程并发时,接口平均时间36.49 ms,TP90时间46 ms,TP99时间76 ms,TPS 295.4。
该接口此次压测总体TPS 499,该接口UMP线上接口峰值14469次/5分钟,此次压测值相当于线上接口调用量10倍。
压测过程中,应用服务器CPU资源占用率在43%左右。
2. 风险及建议
测试过程中发现,磁盘写入量太高,制约了系统性能的提升;系统在30线程并发时,达到最优调用量。再增加并发压力到60线程时,性能下降,此时CPU占用40%左右,磁盘写入量却高达60M/S,如下图:
建议排查日志内容,减少日志输出量,现在info日志里打印了太多参数信息。
3. Docker配置
服务器 机房 压测机器配置
预发两台docker 汇天 4C 8G
4. 测试执行结果
4.1 总体情况:
30线程并发:
观察上图发现,当线程并发数从30增加并发压力到60时,TPS数值反而下降。原因为:磁盘写入量太高,线程在等待磁盘IO,制约了系统性能的提升。
4.2 TPS趋势
TPS趋势平稳,系统表现稳定。
30线程并发:
60线程并发:
4.3 资源占用
压测过程中,应用服务器CPU资源占用率在43%左右,如下图: