概述
本地起了一个项目,对login登录做了200并发的负载测试。发现tps最高上升到550左右,然后持续的剧烈波动
本着怀疑一切的态度,觉得tps应该有上升的空间,于是去监听一下进程。
分析过程
习惯性的做线程dump
结果发现一大堆线程阻塞了(BLOCKED)。为什么会阻塞?日志已经很明显提示了,线程疯狂打日志导致的堵塞。
线程为什么会疯狂打日志?这里也提示了,在调用checkLogin方法的时候抛出来的日志。
代码检索
代码拉出来,搜一下checkLogin方法。于是就发现登录这里每一步都打了一条日志。批量处理的时候,很容易就把线程给阻塞了。
现在把这些日志全部禁用掉
重启项目,脚本回归
现在TPS上升到了800左右
「All right reserved, any unauthorized reproduction or transfer is prohibitted」
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「All right reserved, any unauthorized reproduction or transfer is prohibitted」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!