1.问题
项目上线前需要对接口进行性能测试,发现有2个查询接口性能始终达不到上线要求

2.分析过程
取线程快照
打印线程堆栈日志:

通过上面发现54个线程处于 waiting on condition 状态,在等待写入磁盘日志,所以断定瓶颈在写入日志io这块所以将日志打印关闭,再部署一版试试。
部署后发现,吞吐量上不去还是400,

查看cpu和io情况,发现io已经正常,cpu还是很高



继续打印线程堆栈日志:
通过以上发现有线程阻塞现象,Blocked on object monitor 这段代码是日志推送kafka,在等待对象锁
继续关闭日志推送kfka,继续观察

发现吞吐量达到了4000+
3.解决
1.关闭线上日志,仅保留报错日志。重新优化kfka日志推送组件,优化加密逻辑

文章讲述了项目上线前对查询接口性能测试中遇到的问题,经过分析发现瓶颈在于写入日志和Kafka日志推送。通过调整策略,关闭不必要的日志并优化Kafka组件,最终提升了吞吐量。
4083

被折叠的 条评论
为什么被折叠?



