gpt4 book ai didi

java gc 释放应用程序

转载 作者:行者123 更新时间:2023-11-28 23:51:48 24 4
gpt4 key购买 nike

使用 jmx 并监视 Web 应用程序,我注意到当 GC (G1) 运行时,所有线程都被卡住,并且应用程序没有响应。我这样配置 tomcat jvm:

-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

当使用的堆内存达到最大限制(2GB)并且 GC 深入内存时,应用程序没有响应。在 gc 工作之后,使用的堆下降到 300Mb。是否可以为 GC 设置不同的工作方式?这对我的应用程序来说是个大问题,因为我使用 hazelcast 和 jgroups,每次 gc 工作时,都会导致集群分区。

我在此 Web 应用程序中使用的一些特殊库:1) 淡褐色 1.9.42) 阿卡 0.103) Jersey 1.2

最佳答案

问题可能很简单,因为您需要 -XX:UnlockExperimentalVMOptions,因为 (AFAIK) G1GC 仍被认为是实验性的。


还有许多其他实验性的、特定于 HotSpot 的 JVM args,如果这不能解决问题,您可以尝试一下:

  • -XX:+UseParallelGC
  • -XX:+UseConcMarkSweepGC
  • 等...

参见 http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html .

关于java gc 释放应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com