我們在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