一个java项目在压测log4j2.3 syslog时发现linux负载us不高(开始时会高,sy高后us就降了下来),sy高,请教下要各位怎么排查问题。
Linux version 2.6.32-221.el6.x86_64
java version "1.7.0_10"
log4j2.3
syslog配置:
1. 不配置syslog时正常
2. 配置了syslog时,一段时间后us降下来,sy高,tps很低
占用cpu高的java线程:
"AsyncLogger-1" daemon prio=10 tid=0x00007f4e28294000 nid=0x4f5 runnable [0x00007f4e7943a000]
java.lang.Thread.State: RUNNABLE
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:112)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:430)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:409)
at org.apache.logging.log4j.core.Logger$PrivateConfig.logEvent(Logger.java:288)
at org.apache.logging.log4j.core.async.AsyncLogger.actualAsyncLog(AsyncLogger.java:305)
at org.apache.logging.log4j.core.async.RingBufferLogEvent.execute(RingBufferLogEvent.java:100)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:43)
at org.apache.logging.log4j.core.async.RingBufferLogEventHandler.onEvent(RingBufferLogEventHandler.java:28)
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)