You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Ralph Goers (Jira)" <ji...@apache.org> on 2021/03/31 03:52:00 UTC

[jira] [Comment Edited] (LOG4J2-3057) TcpSocketServer over load CPU

    [ https://issues.apache.org/jira/browse/LOG4J2-3057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312031#comment-17312031 ] 

Ralph Goers edited comment on LOG4J2-3057 at 3/31/21, 3:51 AM:
---------------------------------------------------------------

I would suggest you use a profiler like YourKit to profile the server to determine where the high CPU usage is occurring. Without that we can only guess.

As for the logs, the first portion looks to be part of an event logging a stack trace. Without the first part it is impossible to say what it is. The other logs typically occur at shutdown and indicate that Tomcat has detected ThreadLocal variables that have not been cleaned up. That happens when the application doesn't shut down Log4j when it terminates. While ugly they usually aren't a problem.


was (Author: ralph.goers@dslextreme.com):
I would suggest you use a profiler like YourKit to profile the server to determine where the high CPU usage is occurring. Without that we can only guess.

> TcpSocketServer over load CPU
> -----------------------------
>
>                 Key: LOG4J2-3057
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3057
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>            Reporter: Mykola Holovach
>            Priority: Major
>
> My server log4j2 xml configuration below
> {code:java}
> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config">  <Appenders>
> 	<RollingRandomAccessFile name="ERROR_FILE" bufferSize="1024" bufferedIO="true" append="true"
> 		fileName="${LOGS_HOME}/logfinal-error-${HOST_NAME_SHORT}.log"
> 		filePattern="${LOGS_HOME}/logfinal-error-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> 		<ThresholdFilter level="warn" />
> 		<PatternLayout pattern="%d{DEFAULT} %-5p %t %c %X{application} %x - %m%n" />
> 	    <Policies>
> 	        <TimeBasedTriggeringPolicy interval="1"/>
> 	    </Policies>
> 	</RollingRandomAccessFile>	<RollingRandomAccessFile name="DEBUG_FILE" bufferSize="32768" bufferedIO="true" append="true" 
> 		fileName="${LOGS_HOME}/logfinal-debug-${HOST_NAME_SHORT}.log"
> 		filePattern="${LOGS_HOME}/logfinal-debug-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> 		<ThresholdFilter level="debug" />
> 		<PatternLayout pattern="%d{DEFAULT} %-5p %t %c ${application} %x - %m%n" />
> 	    <Policies>
> 	        <TimeBasedTriggeringPolicy interval="1"/>
> 	    </Policies>
> 	</RollingRandomAccessFile>	<Async name="ASYNC" bufferSize="64">
> 		<AppenderRef ref="ERROR_FILE" />
> 		<AppenderRef ref="DEBUG_FILE" />
> 	</Async>
>   </Appenders>  <Loggers>
> 	<Logger name="ua" level="debug" />
> 	<Logger name="ua.cetelem.DossierAnalyser" level="info" />
> 	<Logger name="ua.cetelem.dbaccess.DbAccess" level="info" />
> 	<Logger name="com.usb" level="debug" />
> 	<Logger name="jacorb" level="info"/>
> 	<Logger name="org.owasp" level="trace"/>
>     <Root level="info">
>       <AppenderRef ref="ASYNC"/>
>     </Root>
>   </Loggers></Configuration>
> {code}
> My client side log4j2 xml configuration below
> {code:java}
> <Configuration xmlns="http://logging.apache.org/log4j/2.0/config">	<Appenders>
>         <Socket name="logfinal" host="localhost" port="1101">
>         	<JSONLayout/>
>         </Socket>		<RollingFile name="ERROR_FILE"
> 			fileName="build/${sys:LOG4J_APP_NAME:-}-error-${HOST_NAME_SHORT}.log"
> 			filePattern="build/${sys:LOG4J_APP_NAME:-}-error-${HOST_NAME_SHORT}.log.%d{yyyy-MM-dd}">
> 			<ThresholdFilter level="warn" />
> 			<PatternLayout
> 				pattern="%d{DEFAULT} %-5p %t %c %x - %m%n" />
> 			<Policies>
> 				<TimeBasedTriggeringPolicy interval="1" />
> 			</Policies>
> 		</RollingFile>		<RollingFile name="DEBUG_FILE"
> 			fileName="build/${sys:LOG4J_APP_NAME:-}-debug-${env:NAME_SHORT}.log"
> 			filePattern="build/${sys:LOG4J_APP_NAME:-}-debug-${env:NAME_SHORT}.log.%d{yyyy-MM-dd}">
> 			<ThresholdFilter level="debug" />
> 			<PatternLayout
> 				pattern="%d{DEFAULT} %-5p %t %c %x - %m%n" />
> 			<Policies>
> 				<TimeBasedTriggeringPolicy interval="1" />
> 			</Policies>
> 		</RollingFile>
> 		
> 		<Async name="ASYNC" bufferSize="64">
> 			<AppenderRef ref="ERROR_FILE" />
> 			<AppenderRef ref="DEBUG_FILE" />
>  			<AppenderRef ref="logfinal" />
> 		</Async>
>         
>     </Appenders>	<Loggers>
> 		<Logger name="org.hibernate.tool.hbm2ddl" level="DEBUG" />
> 		<Logger name="org.hibernate.SQL" level="INFO" />
> 		<Logger name="ua.cetelem" level="debug" />
> 		<Root level="info">
> 			<Property name="application">app_name</Property>
> 			<AppenderRef ref="ASYNC" />
> 		</Root>
> 	</Loggers>
> </Configuration>
> {code}
> I need a help to resolve an issue with high load CPU on the logger server, with SocketAppender, what could be the problem and which could be options to resolve this problem?
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)