log4j2同步日志引发的性能问题
1 问题回顾1.1 问题描述在项目的性能测试中,相关的接口的随着并发数增加,接口的响应时间变长,接口吞吐不再增长,应用的CPU使用率较高。1.2 分析思路谁导致的CPU较高,阻塞接口TPS的增长?接口的响应时间的调用链分布是什么样的,有没有慢的点?1)使用火焰图分析应用的CPU如下,其中log4j2日志占了40%左右CPU,初步怀疑是log4j2的问题。2)调用链的分析通过pfinder查看调用链发现,接口总耗时78ms,没有明显慢的调用方法和慢sql等,先排除接口的本身的代码问题。1.3 初步结论log4j2的问题,需详细分析日志的相关配置log4j2.xml。上面可以看到asyncRollingFile和errorAsynchRollingFile都是打印的同步日志。同步日志是程序的业务...阅读全文