各位:
以下是本周第一次双师压测结果,后续优化后会更新优化结果。
配置:
压测环境: staging压测服务器配置4核16G,数据库4核8G
线上环境: 服务器配置16核24G,数据库主库:2核4,从库:4核8G
负载机: 8核16G 内网
一、基准测试
结论:学生端获取当前课程接口100毫秒以上,教师端多个主要接口100毫秒以上,教师端接口优化空间较大。
二、混合压测
学生端:并发700,吞吐量486
服务器资源利用率20%左右,内存利用率40%左右
数据库利用率<10%,内存利用率70%左右。
教师端:并发50,吞吐量55
服务器资源利用率60%左右,内存利用率40%左右。
数据库利用率22%,内存利用率70%左右。
结论:服务器和数据库内存利用率总体偏高,教师端接口总体耗资源较多性能瓶颈明显。
三、主要耗性能接口
教师端主要接口分别单独压测(60并发线程循环10次)占服务器资源利用率如下:
获取约课学生信息/teacher/attendance/getStudent:利用率90%,注:测试班级学生数据为上限100个。
获取台词对话/teacher/lesson-lines-dialogue/byPointId:利用率87%
获取班级信息/teacher/attendance/464/classes:利用率38%
根据trackId获取所有课程/teacher/point/list:利用率30%
结论:以上3个接口并发几率大、占用资源最多,优化优先级最高。
login | 60*10 | 13% |
teacher/attendance | 60*10 | 14% |
/teacher/lesson-lines-dialogue/byPointId | 50*10 | 87% |
/teacher/system/self-profile | 60*10 | 7% |
/teacher/attendance/464/classes | 60*10 | 38% |
/teacher/attendance/getStudent | 60*10 | 90% |
/teacher/lesson-lines-progress/save | 60*10 | 5% |
/teacher/classroom-log/add | 60*10 | 4% |
/teacher/track/getTracks | 60*10 | 6% |
/teacher/point/list | 60*10 | 30% |
TOTAL |
综上:学生端目前没有性能压力,单台4核16G吞吐量可支持到500以上,线上配置更高,满足业务发展。教师端接口性能问题较严重,最多并发50个,吞吐量50左右。当每秒并发达到50时,教师总数预测在1000以上。鉴于目前B端的业务规模和教师总数,总体没有接口性能压力。当业务数据达到一定量时,管理后台的查询问题需要注意。