现象
使用jmeter进行压测时出现错误。
分析过程
压测应用流程如下:
jmeter -> A -> B ->C
1. 常测试并发数为7、20都会有问题描述中的错误,根据A 的access.log 访问日志可知在请求B阶段没有返回,导致调整A使用B超时,且返回时间是2分钟多一点.
2. 我们也观察B的access.log,返回时间很长,且adminServer.log日志大量的报错(调用C)
3. C SQL相当多,且测试期间有大量的老年代垃圾回收事件,且每笔耗时基本在5-6秒,于是 调整内存由4G到8G,调整后不再出现老年代回收。
解决方案
1. SQL优化:以下数据库操作都是1分钟左右
(1)
(2)
(3)
(4)
2. 提高数据库配置
3. 简化业务流程