You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Liao,Kucheng (JIRA)" <ji...@apache.org> on 2017/12/21 02:02:00 UTC
[jira] [Created] (LOG4J2-2155) alway full gc on low memory
Liao,Kucheng created LOG4J2-2155:
------------------------------------
Summary: alway full gc on low memory
Key: LOG4J2-2155
URL: https://issues.apache.org/jira/browse/LOG4J2-2155
Project: Log4j 2
Issue Type: Bug
Components: Core
Affects Versions: 2.8.2
Environment: centos6.8 ,jdk8
Reporter: Liao,Kucheng
Attachments: log4j-exception1.png, log4j-exception2.png, log4j2-exception3.png, log4j2.xml
my web project run on a low memory jvm , the configurate :
JAVA_OPTS="
-server
-Xmx2g
-Xms400m
-Xmn200m
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:CMSInitiatingOccupancyFraction=85
-XX:-UseBiasedLocking
-XX:+UseCompressedOops
-XX:+UseCompressedClassPointers
-XX:-UseCounterDecay
"
its a webSocket server conaint webSocket and http, i deploy more than 10 nodes on production.
today ,i find 2 nodes cup is full ,i check it , jvm aways run full gc :
[deployUser@iZbp1bk0r4lgrkltait03cZ bin]$ jstat -gcutil 5749
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 4.48 25.75 94.23 87.43 44 0.443 443836 54806.448 54806.891
[deployUser@iZbp1bk0r4lgrkltait03cZ bin]$
i dump jvm and find :
[deployUser@iZbp1bk0r4lgrkltait03cZ ~]$ more jmap
num #instances #bytes class name
----------------------------------------------
1: 25162 21011520 [B
2: 67545 10520864 [C
3: 262144 6291456 org.apache.logging.log4j.core.async.AsyncLoggerConfigDisruptor$Log4jEventWrapper
4: 14916 1970880 [Ljava.lang.Object;
5: 6895 1867456 [I
6: 65777 1578648 java.lang.String
7: 13242 1165296 java.lang.reflect.Method
8: 9211 1024960 java.lang.Class
9: 21687 693984 java.util.HashMap$Node
10: 4886 351792 io.netty.channel.DefaultChannelHandlerContext
i think Log4jEventWrapper is too many, i look the source code ,the default Disruptor size is 256 * 1024.
maven config :
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.9</version>
</dependency>
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.2.0</version>
</dependency>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)