gpt4 book ai didi

java - 为什么minor GC这么频繁

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:24 25 4
gpt4 key购买 nike

这是我的 JVM 参数:

> /usr/local/java/bin/java -Xloggc:log/gc.log -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:PermSize=64m -XX:MaxPermSize=64m -Xss128K -server -Xmn1024m -Xms3027m -Xmx3027m -Dresin.home=/usr/local/resin

我用的是Resin,上面是Resin启动JVM的参数,下面是我用jstat -gcutil pid 1000 1000时的GC输出

   S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   

0.00 1.60 46.21 25.62 21.69 72639 941.082 31 0.275 941.357

1.51 0.00 51.91 25.63 21.69 72640 941.093 31 0.275 941.368

0.00 1.87 62.96 25.64 21.69 72641 941.104 31 0.275 941.379

1.51 0.00 86.39 25.65 21.69 72642 941.114 31 0.275 941.389

0.00 1.56 94.28 25.65 21.69 72643 941.126 31 0.275 941.401

0.00 1.45 5.03 25.67 21.69 72645 941.146 31 0.275 941.421

1.74 0.00 18.76 25.68 21.69 72646 941.158 31 0.275 941.433

0.00 1.85 37.51 25.69 21.69 72647 941.169 31 0.275 941.443

1.59 0.00 53.58 25.70 21.69 72648 941.180 31 0.275 941.455

0.00 1.74 74.02 25.71 21.69 72649 941.192 31 0.275 941.467

minor GC 大约每秒一次,我感觉很频繁,因为我新的 Edanz size 是 1g,所以为什么这么频繁还是这很正常?

最佳答案

要么您的 Eden 大小不是 1 GB,要么您正在制造大量垃圾。由于您似乎没有设置 Eden 大小,因此怀疑它比您想象的要小得多。

尝试使用 jstat -gccause 来查看大小。

我怀疑你一直在阅读http://www.caucho.com/resin-3.0/performance/jvm-tuning.xtp它错误地指出 -Xmn 设置了 Eden 空间。 ;)

-Xmx 选项设置最大总堆大小(新旧)

-Xmn 选项设置年轻代的大小,包括伊甸园空间和两个幸存者空间。由于您的幸存者空间似乎不是很满,我怀疑它们占了年轻一代 1 G 的大部分。

http://www.oracle.com/technetwork/java/javase/tech/exactoptions-jsp-141536.html

尝试将 -XX:SurvivorRatio= 设置为 10 之类的值,这 1 GB 中的大部分将是 Eden 空间。

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

关于java - 为什么minor GC这么频繁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277594/

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