当前位置 : 主页 > 操作系统 > centos >

记一次某APP后台接口并发优化案例

来源:互联网 收集:自由互联 发布时间:2022-06-20
一、APP故障   1、业务故障现象:  APP中直播带货时,页面加载不出,APP不能正常访问。   2、紧急排查:查询后台并发连接数1000左右,并不算高。查询mongodb CPU 已接近100%,查询发现存

一、APP故障

  1、业务故障现象: APP中直播带货时,页面加载不出,APP不能正常访问。

  2、紧急排查:查询后台并发连接数1000左右,并不算高。查询mongodb CPU 已接近100%,查询发现存在大量慢查询日志。

  3、紧急处理:db.xy_contentPV.createIndex({"docid": 1}, {background: true});添加该索引后CPU逐渐下降。

  4、附故障时负载均衡连接数、mongdb CPU、慢查询日志 等截图。

      记一次某APP后台接口并发优化案例_平台并发优化


二、平台架构图

 1、原架构图

    记一次某APP后台接口并发优化案例_平台并发优化_02

  2、调整后,架构不变、增加物理硬件设备

    (1) toc接口配置由2台4C8G增加到5台8C16G(toc接口:直接面向用户的相关接口)

    (2)nginx代理由2台4C4G增加到6台8C8G服务器(接口添加nginx缓存后,大量并直接由nginx承受)


三、并发优化

  • mongodb慢查询语句优化。

    (1)慢查询日志统计

            记一次某APP后台接口并发优化案例_平台并发优化_03

          mongodb慢查询统计参考:待完善。

    (2)根据慢查询日志,结合语句执行次数与执行时长,添加索引,如:

            db.xy_contentPV.createIndex({"docid": 1}, {background: true})

          mongodb索引优化参考:待完善。

    (3)分库、将数据统计的库和其他业务库分离,保证库与库之间互不影响

  • 业务访问接口优化。

    (1)统计一小时内各业务接口访问频率(nginx日志)

            记一次某APP后台接口并发优化案例_平台并发优化_04

         统计脚本参考:待完善。

    (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,每秒事务数,是衡量系统性能的一个非常重要的指标。



    上一篇:prometheus-operator 监控 k8s 外部集群
    下一篇:没有了
    网友评论