0
使用jmx並監控一個web應用程序時,我注意到GC(G1)運行時,所有線程都凍結,應用程序不響應。我配置Tomcat的JVM中是這樣的:當使用的堆內存達到最大極限(2GB)和GC記憶深刻工作java gc釋放應用程序
-Xms2048m
-Xmx2048m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+DisableExplicitGC
-Xss2m
-XX:+CMSClassUnloadingEnabled
-XX:+UseG1GC
-Djava.net.preferIPv4Stack=true
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8338
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dhazelcast.logging.type=slf4j
應用程序沒有響應。在gc工作後,使用的堆降到300Mb。是否可能爲GC設置不同的工作方式?這對我的應用程序來說是一個很大的問題,因爲我使用了hazelcast和jgroups,並且每次gc工作時,都會導致集羣分區。
,我在此Web應用程序使用一些特殊的庫: 1)hazelcast 1.9.4 2)阿卡0.10 3)球衣1.2
您使用的是32位JVM/JDK嗎?如果是這樣,最大可分配內存是2 Gig,所以你可能會用Xms2048m來做到這一點(它試圖從頭開始分配2 Gig的頭) –