• 记录一次压测性能优化


    1.背景

    当前测试系统新增测试需求,单个用户需要同时从系统中获取10个资源的元数据,元数据来源是根据素材的唯一id从Hive数据平台中获取数据内容属于json格式的响应数据,整个响应实体非常之大,当前测试web平台所用的接口属于HIVE数据平台下cmapi代理接口下的web应用平台后台封装的三级代理接口,其中响应的内容中,需要和第三方交互的数据,存到redis中。

    2.测试过程

    Jmeter模拟整个请求,发起压测,按实际需求,首先模拟循环发送10个请求,压测10min,

    再模拟10个线程请求,循环10次,压测10min,在测试过程中,出现了报错以及web平台down掉,报错内容为{"code":"404","msg":"can't  get any info from hive"}和“502 Bad Gateway”等错误,为了验证是否是真的不存在此id资源,在压测结束后,我们单独来请求此资源,结果是能正常返回数据内容的,从另外的方面来分析,hive数据平台的压力应该不至于连10个线程的压力也支撑不起从代理层面来分析,也应该是hive > cmapi >= web才合理,那么为什么会出现这样的问题?

    3.探索分析过程

    根据出错第一指南,首先是查找请求日志,从日志中获得的反馈是一个redis错误,具体的错误内容现在已经不太记得,后续的解决方案是经过研发分析是保存到redis中的这部分数据输出了太多冗余日志,造成开启句柄量过多造成的资源浪费,后续修改了再次测试,请求量和并发量有了一定上升,所以系统测试的过程中,性能测试是非常有必要的,在未到达用户层面时就将问题暴漏出来,是节约企业成本的最佳实践指南。

    欢迎关注,后续继续分享测试过程中的小案例

     

  • 相关阅读:
    DOM增删改替换
    DRF框架之序列化器serializers组件详解
    DRF基础操作流程
    DRF框架基础知识储备
    selectors模块
    并发编程——IO模型详解
    高性能web服务器——nginx
    Django中的ORM如何通过数据库中的表格信息自动化生成Model 模型类?
    使用cors完成跨域请求处理
    Flask基础
  • 原文地址:https://www.cnblogs.com/tython/p/12718923.html
Copyright © 2020-2023  润新知