gpt4 book ai didi

java - 即使有足够的 Java 内存,也会重复进行 Java 垃圾回收 - 为什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:52 25 4
gpt4 key购买 nike

我们的 Java 进程正在占用大量 CPU,并且日志显示其执行 GC 过于频繁,即使已用内存约为 5GB(从 JMX 控制台获取)并且最小和最大内存为 10GB。

我们的 JVM 参数是:JVM_GC="-verbose:gc -Xnoclassgc -XX:+PrintGCDetails -XX:+UseParNewGC -XX:NewSize=3GB -XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC "

和 MinHeap=MaxHeap=10GB

知道什么可能会触发 GC?以及为什么它发生得太频繁而且太快了?除了通过 JMX 获取一些设置之外,我们无法连接任何类型的分析工具作为其生产箱...谢谢..... GC日志....

@2011-07-20 02:10:46
[完整 GC(系统)[CMS:3333423K->4019122K(7340032K),13.4979250 秒] 4876606K->4019122K( 10171200K), [CMS Perm : 21656K->21608K(21824K)], 13.4980930 秒s] [Times: user=12.99 sys=0.50, real=13.50 secs]
[GC [1 CMS-initial-mark: 4019122K(7340032K)] 4041525K(10171200K), 0.0009110 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]
@2011-07- 20 02:11:10
[CMS-concurrent-mark: 10.322/10.753 secs] [Times: user=21.55 sys=0.22, real=10.75 secs]
[CMS-concurrent-preclean: 0.035/0.036 secs] [Times: user=0.04 sys=0.00, real=0.04 secs]
@2011-07-20 02:11:15 < br/> CMS:由于时间 [CMS-concurrent-abortable-preclean: 1.083/5.063 secs] [Times: user=1.08 sys=0.00, real=5.06 secs]
[GC[YG 占用:282204 K (2831168 K)][重新扫描(并行),0.0402030 秒][弱引用处理,0.0010550 秒]
[1 CMS-备注:4019122K(7340032K)] 4301326K(10171200K),0.0413630 秒] [时间:用户=0.07 系统=0.01,实际=0.04 秒]
@2011-07-20 02:11:16
[CMS-concurrent-sweep: 2.627/2.627 secs] [Times: user=2.63 sys=0.00, real=2.63 secs]
[CMS-concurrent-reset: 0.039/0.039 secs] [Times: user=0.04 sys=0.00, real=0.04 secs]
@2011-07-20 02:11:20< br/>[GC [1 CMS-initial-mark: 4019034K(7340032K)] 4301238K(10171200K), 0.0308450 secs] [Times: user=0.03 sys=0.00, real=0.03 secs]
@2011-07- 20 02:11:30
[CMS-concurrent-mark: 10.304/10.307 secs] [Times: user=20.48 sys=0.11, real=10.31 secs]
[CMS-concurrent-preclean: 0.018/0.019 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
@2011-07-20 02:11:35< br/> CMS:由于时间 [CMS-concurrent-abortable-preclean: 1.043/5.048 secs] Times: user=1.03 sys=0.00, real=5.05 secs]
[GC[YG 占用:282204 K (2831168 K)][重新扫描(并行),0.0419560 秒][弱引用处理,0.0010880 秒]
[1 CMS-备注:4019034K(7340032K)] 4301238K(10171200K),0.0431480 秒] [时间:用户=0.07 系统=0.01,真实=0.05 秒]
@2011-07-20 02:11:38
[CMS-concurrent-sweep: 2.622/2.622 secs] [Times: user=2.63 sys=0.00, real=2.62 secs]
[CMS-concurrent-reset: 0.039/0.039 secs] [Times: user=0.04 sys=0.00, real=0.04 secs]

最佳答案

尝试使用 UseCMSInitiatingOccupancyOnly 和 CMSInitiatingOccupancyFraction 标志。使用这些标志启动 CMS 收集将根据占用率触发。此外,增加终身代的规模可能是有意义的。

关于java - 即使有足够的 Java 内存,也会重复进行 Java 垃圾回收 - 为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761080/

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