美文网首页
压测出现的问题

压测出现的问题

作者: 陈阳001 | 来源:发表于2019-03-11 15:41 被阅读0次

一.3.19大促时的压测:

1.问题:营销接口采用fastjson的方法序列化和反序列化去实现对象间属性的拷贝,因为营销接口里面有大量的循环,造成序列化和反序列化一秒80万的操作,占用大量cpu资源,造成热线程。

解决:去除序列化和反序列化操作,用get set替代。这样不会出现占用大量cpu资源的情况。

2.问题:商品接口用spring的PropertyUtils去操作对象间属性的拷贝。性能太低。

解决:换成Cglib的 BeanCopier,效率提升的10倍。
延伸:
进行了三次测试,最后的结果如下:

10次测验 第一次 第二次 第三次 平均值 每次平均值
BeanUtil.copyProperties 54 57 50 53.66667 5.366666667
PropertyUtils.copyProperties 4 4 4 4 0.4
org.springframework.beans.BeanUtils.copyProperties 12 10 11 11 1.1
BeanCopier.create 0 0 0 0 0
10000次测验 第一次 第二次 第三次 平均值 每次平均值
BeanUtil.copyProperties 241 222 226 229.6667 0.022966667
PropertyUtils.copyProperties 92 90 92 91.33333 0.009133333
org.springframework.beans.BeanUtils.copyProperties 29 30 32 30.33333 0.003033333
BeanCopier.create 1 1 1 1 0.1
10000次反转测验 第一次 第二次 第三次 平均值 每次平均值
BeanUtil.copyProperties 178 174 178 176.6667 0.017666667
PropertyUtils.copyProperties 91 87 89 89 0.0089
org.springframework.beans.BeanUtils.copyProperties 21 21 21 21 0.0021
BeanCopier.create 0 1 1 0.666667 6.66667E-05
  • Cglib的 BeanCopier最高

3.问题:代码下压测情况下抛出ConcurrentModificationException,经过排查是营销接口的ArrayList.sort()出现并发冲突。

方案:去除ArrayList.sort()用别的方法排序。
ArrayList.sort()这个操作虽然没有set,remove等操作,但是改变了数据的顺序,有指针等操作,也会造成ConcurrentModificationException

相关文章

  • locust压测RPS无法提高问题解决

    1、压测机器负载过高2、压测脚本配置问题3、被压测机器负载过高4、带宽

  • Kafka 集群压力测试

    1)Kafka压测 用Kafka官方自带的脚本,对Kafka进行压测。Kafka压测时,可以查看到哪个地方出现了瓶...

  • 简书第523日

    明日出门,出去测个胎压。。。 如果不是我弟告诉我,我都不知道上高速前需要测个胎压,防备出现问题。。。 逼自己多多开...

  • 第36问:用 mysqlslap 压测的结果,为什么比用 sys

    问题 用 mysqlslap 压测 SQL 的结果,好像比用 sysbench 压测 SQL 的结果更平稳,为什么...

  • 性能压测学习大纲

    一、压测的目的 二、压测的完整流程 三、压测场景分析/组织测试脚本 四、压测数据准备 五、压测指标监控 七、压测结...

  • k8s网络TPS不稳定测试集合

    前提介绍 在工作中配合压测同事对业务压测发现一些问题,使用NodePort做业务暴漏,压测的TPS周期性波动,看了...

  • 压测tips

    压测前: 明确压测的目的,观测指标; 准备好压测方案,几组case,case分别压测多久; 申请压测环境,告知进行...

  • 阶梯压测

    今天我们来浅谈一下阶梯压测,那么,什么是阶梯压测,什么时候做阶梯压测,阶梯压测和普通压测又有什么区别呢?阶梯压测:...

  • log4j并发打印日志导致线程Block问题排查记录

    现象:对固定接口测试环境做压测。qps保持在单机37左右,各服务未出现异常。但是压测持续30分钟左右时,突然出现大...

  • Jmeter压测报错java.net.BindException

    今天压测接口遇到这么一个问题 当并发线程较高时,可能会出现Address already in use: conn...

网友评论

      本文标题:压测出现的问题

      本文链接:https://www.haomeiwen.com/subject/dxvppqtx.html