[ 
https://issues.apache.org/jira/browse/LOG4J2-1167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

jiangguilong updated LOG4J2-1167:
---------------------------------
    Description: 
when I start server,the ring buffer occupy about 20MB+ in heap ,
here is heap message:
Class Name                                                      |   Objects | 
Shallow Heap | Retained Heap
-----------------------------------------------------------------------------------------------------------
.*RingBuffer.*                                                  |           |   
           |              
com.lmax.disruptor.RingBuffer                                   |         1 |   
       144 | >= 22,020,440
org.apache.logging.log4j.core.async.RingBufferLogEvent          |   262,144 |   
20,971,520 | >= 20,971,552
org.apache.logging.log4j.core.async.RingBufferLogEventTranslator|        44 |   
     3,168 |      >= 3,168
org.apache.logging.log4j.core.jmx.RingBufferAdminMBean          |         0 |   
         0 |        >= 384
org.apache.logging.log4j.core.async.RingBufferLogEventHandler   |         1 |   
        24 |         >= 32
com.lmax.disruptor.RingBuffer$1                                 |         0 |   
         0 |         >= 32
org.apache.logging.log4j.core.jmx.RingBufferAdmin               |         1 |   
        24 |         >= 24
com.lmax.disruptor.RingBufferFields                             |         0 |   
         0 |         >= 24
org.apache.logging.log4j.core.async.RingBufferLogEvent$Factory  |         1 |   
        16 |         >= 16
com.lmax.disruptor.RingBufferPad                                |         0 |   
         0 |              
Total: 10 entries (11,119 filtered)                             |   262,192 |   
20,974,896 |              
-----------------------------------------------------------------------------------------------------------
I think here is memory leak,do you aggree ?
======================
here is my log4j2  file config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" monitorInterval="1800" shutdownHook="disable"  >
        <properties>
                <property name="SERVER_ID">1</property>
                <property name="GAME_NAME">ST</property>
                <property name="PID">1</property>
                <property name="SERVER_NAME">game</property>
                <property 
name="LOG_HOME">/data/log/${SERVER_NAME}/${SERVER_ID}</property>
                <property 
name="LINGYU_HOME">/data/stat/lingyu/${SERVER_NAME}/${SERVER_ID}</property>
        </properties>
        <appenders>
                <Console name="Console" target="SYSTEM_OUT" follow="true">
                        <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
%level [%thread][%c{1}] - %msg%n" />
                </Console>
                <RollingRandomAccessFile name="DevLog" 
fileName="${LOG_HOME}/${SERVER_NAME}"
                        
filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log" 
immediateFlush="false">
                        <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
%level [%thread][%c{1}] - %msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="1" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="LingyuLog"
                        fileName="${LINGYU_HOME}/${SERVER_NAME}"
                        
filePattern="${LINGYU_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="5" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
        </appenders>
        <loggers>
                <!-- 3rdparty Loggers -->
        <Logger name="org.springframework" level="warn">
                </Logger>
                <Logger name="io.netty" level="warn">
                </Logger>
                <Logger name="org.apache.http" level="warn">
                </Logger>
                <Logger name="org.apache.commons" level="warn">
                </Logger>
                <Logger name="com.mchange.v2" level="warn">
                </Logger>
                <Logger name="java.sql" level="warn">
                </Logger>
                <!-- Game Stat  logger -->
                <Logger name="com.lingyu.game.service.log.lingyu" level="info" 
additivity="false">
                <appender-ref ref="LingyuLog" />
                </Logger>
                <!-- Root Logger -->
                <Root level="DEBUG" includeLocation="false">
                <appender-ref ref="DevLog" />
                <appender-ref ref="Console"/>
                </Root>
        </loggers>
</configuration>

and log4j2.component.properties content:
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 

  was:
when I start server,the ring buffer occupy about 20MB+ in heap ,
here is heap message:
Class Name                                                      |   Objects | 
Shallow Heap | Retained Heap
-----------------------------------------------------------------------------------------------------------
.*RingBuffer.*                                                  |           |   
           |              
com.lmax.disruptor.RingBuffer                                   |         1 |   
       144 | >= 22,020,440
org.apache.logging.log4j.core.async.RingBufferLogEvent          |   262,144 |   
20,971,520 | >= 20,971,552
org.apache.logging.log4j.core.async.RingBufferLogEventTranslator|        44 |   
     3,168 |      >= 3,168
org.apache.logging.log4j.core.jmx.RingBufferAdminMBean          |         0 |   
         0 |        >= 384
org.apache.logging.log4j.core.async.RingBufferLogEventHandler   |         1 |   
        24 |         >= 32
com.lmax.disruptor.RingBuffer$1                                 |         0 |   
         0 |         >= 32
org.apache.logging.log4j.core.jmx.RingBufferAdmin               |         1 |   
        24 |         >= 24
com.lmax.disruptor.RingBufferFields                             |         0 |   
         0 |         >= 24
org.apache.logging.log4j.core.async.RingBufferLogEvent$Factory  |         1 |   
        16 |         >= 16
com.lmax.disruptor.RingBufferPad                                |         0 |   
         0 |              
Total: 10 entries (11,119 filtered)                             |   262,192 |   
20,974,896 |              
-----------------------------------------------------------------------------------------------------------
I think here is memory leak,do you aggree ?
======================
here is my log4j2  file config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" monitorInterval="1800" shutdownHook="disable"  >
        <properties>
                <property name="SERVER_ID">1</property>
                <property name="GAME_NAME">ST</property>
                <property name="PID">1</property>
                <property name="SERVER_NAME">game</property>
                <property 
name="LOG_HOME">/data/log/${SERVER_NAME}/${SERVER_ID}</property>
                <property 
name="TENCENT_HOME">/data/stat/tencent/${SERVER_NAME}/${SERVER_ID}</property>
                <property name="MOKYLIN_HOME">/data/stat/mokylin</property>
                <property 
name="LINGYU_HOME">/data/stat/lingyu/${SERVER_NAME}/${SERVER_ID}</property>
                <property 
name="R2_HOME">/data/stat/r2/${SERVER_NAME}/${SERVER_ID}</property>
                <property 
name="HAPPYELEMENTS_HOME">/data/stat/happyelements/${SERVER_NAME}/${SERVER_ID}</property>
        </properties>
        <appenders>
                <Console name="Console" target="SYSTEM_OUT" follow="true">
                        <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
%level [%thread][%c{1}] - %msg%n" />
                </Console>
                <RollingRandomAccessFile name="DevLog" 
fileName="${LOG_HOME}/${SERVER_NAME}"
                        
filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log" 
immediateFlush="false">
                        <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
%level [%thread][%c{1}] - %msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="1" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="TencentLog"
                        fileName="${TENCENT_HOME}/${SERVER_NAME}"
                        
filePattern="${TENCENT_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="5" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="MokylinLog"
                        
fileName="${MOKYLIN_HOME}/${GAME_NAME}_${PID}_${SERVER_ID}"
                        
filePattern="${MOKYLIN_HOME}/${GAME_NAME}_${PID}_${SERVER_ID}_%d{yyyyMMddHH}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="1" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="R2Log"
                        fileName="${R2_HOME}/${SERVER_NAME}"
                        
filePattern="${R2_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="5" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="LingyuLog"
                        fileName="${LINGYU_HOME}/${SERVER_NAME}"
                        
filePattern="${LINGYU_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="5" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
                <RollingRandomAccessFile name="HappyElementsLog"
                        fileName="${HAPPYELEMENTS_HOME}/${SERVER_NAME}"
                        
filePattern="${HAPPYELEMENTS_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
                        <PatternLayout pattern="%msg%n" />
                        <Policies>
                                <TimeBasedTriggeringPolicy interval="5" 
modulate="true" />
                        </Policies>
                </RollingRandomAccessFile>
        </appenders>
        <loggers>
                <!-- 3rdparty Loggers -->
        <Logger name="org.springframework" level="warn">
                </Logger>
                <Logger name="io.netty" level="warn">
                </Logger>
                <Logger name="org.apache.http" level="warn">
                </Logger>
                <Logger name="org.apache.commons" level="warn">
                </Logger>
                <Logger name="com.mchange.v2" level="warn">
                </Logger>
                <Logger name="java.sql" level="warn">
                </Logger>
                <!-- Game Stat  logger -->
                <Logger name="com.lingyu.game.service.log.tencent" level="info" 
additivity="false">
                <appender-ref ref="TencentLog" />
                </Logger>
                <Logger name="com.lingyu.game.service.log.mokylin" level="info" 
additivity="false">
                <appender-ref ref="MokylinLog" />
                </Logger>
                <Logger name="com.lingyu.game.service.log.r2game" level="info" 
additivity="false">
                <appender-ref ref="R2Log" />
                </Logger>
                <Logger name="com.lingyu.game.service.log.lingyu" level="info" 
additivity="false">
                <appender-ref ref="LingyuLog" />
                </Logger>
                <Logger name="com.lingyu.game.service.log.happyelements" 
level="info" additivity="false">
                <appender-ref ref="HappyElementsLog" />
                </Logger>
                <!-- Root Logger -->
                <Root level="DEBUG" includeLocation="false">
                <appender-ref ref="DevLog" />
                <appender-ref ref="Console"/>
                </Root>
        </loggers>
</configuration>

and log4j2.component.properties content:
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
 


> Memory leak for  org.apache.logging.log4j.core.async.RingBufferLogEvent
> -----------------------------------------------------------------------
>
>                 Key: LOG4J2-1167
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1167
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.4
>         Environment: Windows 7 service pack 1
> Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
> Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
>            Reporter: jiangguilong
>
> when I start server,the ring buffer occupy about 20MB+ in heap ,
> here is heap message:
> Class Name                                                      |   Objects | 
> Shallow Heap | Retained Heap
> -----------------------------------------------------------------------------------------------------------
> .*RingBuffer.*                                                  |           | 
>              |              
> com.lmax.disruptor.RingBuffer                                   |         1 | 
>          144 | >= 22,020,440
> org.apache.logging.log4j.core.async.RingBufferLogEvent          |   262,144 | 
>   20,971,520 | >= 20,971,552
> org.apache.logging.log4j.core.async.RingBufferLogEventTranslator|        44 | 
>        3,168 |      >= 3,168
> org.apache.logging.log4j.core.jmx.RingBufferAdminMBean          |         0 | 
>            0 |        >= 384
> org.apache.logging.log4j.core.async.RingBufferLogEventHandler   |         1 | 
>           24 |         >= 32
> com.lmax.disruptor.RingBuffer$1                                 |         0 | 
>            0 |         >= 32
> org.apache.logging.log4j.core.jmx.RingBufferAdmin               |         1 | 
>           24 |         >= 24
> com.lmax.disruptor.RingBufferFields                             |         0 | 
>            0 |         >= 24
> org.apache.logging.log4j.core.async.RingBufferLogEvent$Factory  |         1 | 
>           16 |         >= 16
> com.lmax.disruptor.RingBufferPad                                |         0 | 
>            0 |              
> Total: 10 entries (11,119 filtered)                             |   262,192 | 
>   20,974,896 |              
> -----------------------------------------------------------------------------------------------------------
> I think here is memory leak,do you aggree ?
> ======================
> here is my log4j2  file config:
> <?xml version="1.0" encoding="UTF-8"?>
> <configuration status="warn" monitorInterval="1800" shutdownHook="disable"  >
>       <properties>
>               <property name="SERVER_ID">1</property>
>               <property name="GAME_NAME">ST</property>
>               <property name="PID">1</property>
>               <property name="SERVER_NAME">game</property>
>               <property 
> name="LOG_HOME">/data/log/${SERVER_NAME}/${SERVER_ID}</property>
>               <property 
> name="LINGYU_HOME">/data/stat/lingyu/${SERVER_NAME}/${SERVER_ID}</property>
>       </properties>
>       <appenders>
>               <Console name="Console" target="SYSTEM_OUT" follow="true">
>                       <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
> %level [%thread][%c{1}] - %msg%n" />
>               </Console>
>               <RollingRandomAccessFile name="DevLog" 
> fileName="${LOG_HOME}/${SERVER_NAME}"
>                       
> filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log" 
> immediateFlush="false">
>                       <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} 
> %level [%thread][%c{1}] - %msg%n" />
>                       <Policies>
>                               <TimeBasedTriggeringPolicy interval="1" 
> modulate="true" />
>                       </Policies>
>               </RollingRandomAccessFile>
>               <RollingRandomAccessFile name="LingyuLog"
>                       fileName="${LINGYU_HOME}/${SERVER_NAME}"
>                       
> filePattern="${LINGYU_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH-mm}.log">
>                       <PatternLayout pattern="%msg%n" />
>                       <Policies>
>                               <TimeBasedTriggeringPolicy interval="5" 
> modulate="true" />
>                       </Policies>
>               </RollingRandomAccessFile>
>       </appenders>
>       <loggers>
>               <!-- 3rdparty Loggers -->
>       <Logger name="org.springframework" level="warn">
>               </Logger>
>               <Logger name="io.netty" level="warn">
>               </Logger>
>               <Logger name="org.apache.http" level="warn">
>               </Logger>
>               <Logger name="org.apache.commons" level="warn">
>               </Logger>
>               <Logger name="com.mchange.v2" level="warn">
>               </Logger>
>               <Logger name="java.sql" level="warn">
>               </Logger>
>               <!-- Game Stat  logger -->
>               <Logger name="com.lingyu.game.service.log.lingyu" level="info" 
> additivity="false">
>               <appender-ref ref="LingyuLog" />
>               </Logger>
>               <!-- Root Logger -->
>               <Root level="DEBUG" includeLocation="false">
>               <appender-ref ref="DevLog" />
>               <appender-ref ref="Console"/>
>               </Root>
>       </loggers>
> </configuration>
> and log4j2.component.properties content:
> Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to