问题标签 [g1gc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
245 浏览

java - 没有疏散失败,但 G1GC 中仍然是 FullGC

我正在调整 G1GC 以避免发生 FullGC。通过遵循此提示http://www.infoq.com/articles/tuning-tips-G1-GC,我看不到任何日志,例如“空间耗尽”。

GC 会出于什么其他原因决定执行完整收集?或者它仍然有疏散失败但未启用日志?

它在 71320.645 开始了 FullGC,但看起来没有发生疏散失败,有什么想法吗?

0 投票
1 回答
486 浏览

java - Why switching form serial GC to G1 increase RSS

I have sample app with starting RSS size of 600MB when using serial GC. Once I use G1 RSS memory after bootstrap increases to 800Mb.

Does anybody know how I can profile that increase and whenever there any G1 tuning options to improve memory footprint?

0 投票
1 回答
2159 浏览

java - 为什么启用 G1 垃圾收集器时最大堆大小不正确?

当我在 java 应用程序中启用 G1 时,使用-Xmx=1024m -XX:+UseG1GC. 并使用jvisualvm命令检查最大堆大小。最大堆大小为 2GB 而不是 1GB。

有人知道为什么吗?

0 投票
0 回答
399 浏览

java - 切换到 G1 gc 表单 CMS

是否建议从 CMS 切换到具有大对象请求的 G1(大约 40-50MB)。可用资源详细信息:堆大小:6GB-16GB 之间。堆区域大小:8MB-32MB。我使用以下配置应用了 G1 GC:堆大小:12GB,区域大小:8MB,但由于没有。Humongous 对象请求触发 Full GC 被触发(在检查日志后,我发现巨大的对象没有被回收,因为在巨大的分配期间启动的初始标记从未完成,导致老年代被完全填满)。我应该坚持 G1 还是回滚到 CMS?

0 投票
1 回答
75 浏览

g1gc - 在产品中使用 G1GC 算法,我们是否有任何算法必须在阈值水平后进行主要 gc

我们在 PRODUCTION 中使用 G1GC 算法,在 -XX+useg1gc 环境中使用此算法。我的问题是 PROD 中的一些服务器的堆使用率高达 95%,那么我们是否有任何参数或选项或机制表明在达到阈值水平后应该发生主要 GC?

0 投票
1 回答
1229 浏览

java - G1GC Remark 阶段的 Finalize 标记持续时间很长

当 G1 垃圾收集器处于 Remark 阶段(完成标记)时,应用程序在高负载时变得无响应。这是 gc 日志的一部分(暂停发生在2015-08-30T11:24:23.780):

服务器有 128GB 内存

GC 相关的 JVM 选项:

爪哇版:

任何想法可能是什么原因?

更新: 我尝试设置 ParallelGCThreads=32 和 ConcGCThreads=8。暂停持续时间为 82 秒。它变得更短但仍然太长

0 投票
1 回答
2313 浏览

java - VisualVM 将双倍 Xmx 显示为最大堆大小

我有以下问题:

有一个 Xmx 选项设置为 70000m = 70GB 的 Java VM(是的,就是这么大)。但是如果我监控前面提到的 JVM,Max Heap 显示为 140000m(如屏幕截图所示)。

截屏

以下列出了使用的 JVM 选项:

有人提示,为什么 VisualVM 显示双倍最大堆大小?

0 投票
1 回答
6935 浏览

java - 为什么使用 G1 收集器时 -XX:+ExplicitGCInvokesConcurrent 不是默认值?

在内存数据库的上下文中,我们将堆外内存与热点的 G1 收集器结合使用。

但是,当堆外内存使用量达到 MaxDirectMemorySize 时,JDK 代码使用System.gc(). 这导致了世界 GC 漫长而痛苦的停止,这似乎也将所有当前的 live 设置都放在了老一代中,绕过了幸存者(从而增加了裙带关系问题)。设置时不会发生这种情况-XX:+ExplicitGCInvokesConcurrent:GC 更快并且尊重幸存者。

既然System.gc()是JDK内部使用的东西,为什么热点中默认不启用此选项?这个标志会引发理论或实际问题吗?还是只是出于兼容性原因?有没有人有在生产环境中使用这个选项的经验,并且遇到过问题?

0 投票
2 回答
28286 浏览

java - -XX:+UseG1GC 是 -Xincgc 的正确替代品吗?

目前,我们正在通过添加-Xincgc到 java 命令来使用增量垃圾收集器。在JDK 8中,不推荐使用此开关。那么它的等效替代品是什么?-XX:+UseG1GC?

背景:该应用程序有一个8GB的​​堆,并创建了很多短活的对象。我注意到它经常暂停几秒钟来进行垃圾收集。出于好奇,我添加了-Xincgc,发现停顿消失了,整体性能提高了约 4 倍。

不幸的是,我没有找到有关-Xincgc触发器的垃圾收集器类型的任何信息。有CMS(并发标记和扫描)和新的G1(垃圾优先)。但我能得到-Xincgc什么?

0 投票
0 回答
554 浏览

java - 如何解释“visualgc”为 G1 垃圾收集器生成的图形?

我正在尝试通过使用visualgc插件jvisualvm(也在 1.8.0_66 版本中)在我的应用程序中调整 G1 GC(使用 Java 1.8.0_66;Java HotSpot(TM) 64 位服务器 VM)。

但是,我没有从下面的分析图中读取任何与 G1 相关的信息。

g1的visualgc

如何用 G1 来解释这个数字?