zoukankan      html  css  js  c++  java
  • 接口性能测试随笔

    之前很少做性能测试,经过两周的奋战,终于拿出了一份报告。过程坎坷,记录以备忘。

    1、jmeter java请求,记得在finally代码块中调用SampleResult.sampleEnd(),否则测试时无响应时间。

    2、YOUNG GC频率比较高,调整启动参数,加大堆初始内存 -Xms4096m

    3、存储过程的效率。自己写的存储过程,半个小时才插入20万数据;经开发优化后,不到5分钟插100万条!!!

    存储过程,不要嵌套类似这样的查询,否则效率很低。 insert into table_name1 values ((select id from table_name2 where xxx), value2, value3 )

    4、查询接口的测试,要考虑db中表的数据量

    5、往db插测试数据的时候,时间字段尽量要随机,不要CURRENT_TIMESTAMP(),否则如果查询接口按时间段查询,30秒间隔会返回很多数据,测试结果失真

    6、分页查询,效率会随着offset增大而大幅降低。40并发,把24核的物理机CPU干到95%,太可怕!找dba排查,定位到是分页查询问题,把接口入参的limit和页数减小,CPU下去了,TPS是之前的三倍。当然查询语句也有问题,select * from table_name1 where id in (select id from table_name2 where xxx)这种语句也很慢

    7、jdk/bin下,有很多的性能监控用的小工具

    8、关注压力机的CPU和内存使用率,有时候是压力机性能瓶颈,导致服务性能指标上不去

    9、测试报告不要只是堆叠数据表格,主要是突出性能场景、性能分析、问题汇总、优化建议等

    10、在新机器上配置环境,部署服务很费时间;由于是新机器,会出现N多问题,工作量评估的时候要考虑到

    11、并发量很大,TPS上不去,响应时间比较长,而且app服务器和db服务CPU/内存都没上去。响应时间长,可能是db连接池过小,导致线程等待时间长。

    把线程池从10~50,改成100~200后,响应时间缩短一半,在高并发的时候。

  • 相关阅读:
    开源 Serverless 里程碑:Knative 1.0 来了
    以一致的体验交付和管理云原生多集群应用
    iLogtail使用入门K8S环境日志采集到SLS
    如何在golang代码里面解析容器镜像
    mac vmware 无法复制粘贴
    使用vi编辑时上下左右方向键被转化为A、B、C、D
    left join 和 left outer join 的区别
    设计模式之 适配器模式
    设计模式之 命令模式
    设计模式学习之 策略模式
  • 原文地址:https://www.cnblogs.com/dannyyao/p/6528141.html
Copyright © 2011-2022 走看看