2017-02-23 79 views
1

我們在linux虛擬機上運行Jboss EAP 5實例,每個操作系統內存爲10GB。 java版本「1.6.0_20」。Jboss EAP 5.1本機內存泄漏

JBoss配置爲使用4 GB Heap,但Java進程的內存佔用量明顯高於jvm堆。 Java進程的內存使用量增長緩慢,並且永遠不會下降。

我們分析了堆轉儲並沒有看到比下面的一個以外的任何問題: org.jboss.virtual.plugins.context.zip.CertificateReaderInputStream「的85059個實例‘’,通過加載」 org.jboss .bootstrap.NoAnnotationURLClassLoader @ 0x6e8000b50「佔用452.29 MB(34.22%)字節。」

另外,從GC日誌中可以看出,堆未滿,只佔用大約2.5 GB的空間,所以甚至沒有接近4 GB的內存。 貌似機內存泄漏,但如何調試和識別物體/碼片,其產生這個問題

下面是JBoss配置:

-Dsun.rmi.dgc.client.gcInterval=3600000 
-XX:+PrintClassHistogram 
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC 
-XX:-DisableExplicitGC 
-XX:-RelaxAccessControlCheck 
-XX:CMSInitiatingOccupancyFraction=80 
-XX:LargePageSizeInBytes=5m 
-XX:MaxNewSize=128m 
-XX:MaxPermSize=512m 
-XX:MaxTenuringThreshold=0 
-XX:NewSize=128m 
-XX:ParallelGCThreads=10 
-XX:SurvivorRatio=8 
-XX:TargetSurvivorRatio=90 
-XX:ThreadStackSize=1024 
-Xloggc:/opt/www/logs/jboss/garbagecollector.log 
-Xms4096m 
-Xmx4096m 
-javaagent:/opt/appdynamics/Appagent/javaagent.jar 

回答

0

您可以使用解壓縮的部署。或者使用JVM選項「-Djboss.vfs.forceVfsJar = true」來禁用內部zip使用。這個問題的根本原因是JDK bug。