一、APP故障
1、业务故障现象: APP中直播带货时,页面加载不出,APP不能正常访问。
2、紧急排查:查询后台并发连接数1000左右,并不算高。查询mongodb CPU 已接近100%,查询发现存在大量慢查询日志。
3、紧急处理:db.xy_contentPV.createIndex({"docid": 1}, {background: true});添加该索引后CPU逐渐下降。
4、附故障时负载均衡连接数、mongdb CPU、慢查询日志 等截图。
二、平台架构图
1、原架构图
2、调整后,架构不变、增加物理硬件设备
(1) toc接口配置由2台4C8G增加到5台8C16G(toc接口:直接面向用户的相关接口)
(2)nginx代理由2台4C4G增加到6台8C8G服务器(接口添加nginx缓存后,大量并直接由nginx承受)
三、并发优化
mongodb慢查询语句优化。
(1)慢查询日志统计
mongodb慢查询统计参考:待完善。
(2)根据慢查询日志,结合语句执行次数与执行时长,添加索引,如:
db.xy_contentPV.createIndex({"docid": 1}, {background: true})
mongodb索引优化参考:待完善。
(3)分库、将数据统计的库和其他业务库分离,保证库与库之间互不影响
业务访问接口优化。
(1)统计一小时内各业务接口访问频率(nginx日志)
统计脚本参考:待完善。
(2)给访问频率高 、且请求类型为GET的接口添加nginx缓存。
缓存添加参考:https://blog.51cto.com/fengxiaoli/2530665
(3)返回数据大于100K的接口添加nginx压缩。
nginx压缩参考:待完善
四、压力测试
1、确定测试接口:直播间相关接口、APP首页相关接口。
2、测试接口和参数准备、由于没有研发支持,只能自己从nginx日志中抓取。
3、测试工具使用的是阿里云的PTS,1000块大洋。
4、APP首页进行多接口测试、直播间进行多接口测试、重要接口进行单接口测试。
5、测试结果:
首页多接口并发:2000-3000 TPS
直播间多接口并发:3000 TPS
获取直播间评论单接口并发:10000TPS
创建评论单接口并发:5000-7000TPS
获取热卖内容并发:2000TPS
注:
处理能力:简称 TPS,每秒事务数,是衡量系统性能的一个非常重要的指标。