为了账号安全,请及时绑定邮箱和手机立即绑定

G1 的 ParallelGCThreads

G1 的 ParallelGCThreads

不负相思意 2021-08-06 10:16:55
最近,我正在使用 jvm 选项来提高性能。当我学习 GC 选项时ParallelGCThreads,我遇到了一个问题。我认为最好的值ParallelGCThreads是逻辑处理器的数量。但在我的 32 核机器上,默认值是 23。来自 oracle 的文章Garbage First Garbage Collector Tuning,它告诉我们处理器数量大于 8,默认值为ParallelGCThreads是处理器的 5/8。那么,为什么是 5/8 而不是 8/8?
查看完整描述

1 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

这个 hotspot-gc-dev 线程暗示在非常大的 CPU 或多 CPU 系统上,额外线程的收益递减,因此线性缩放因子减少到 8 个内核以上。


这可能是因为 GC 本质上是受内存限制的,并且足够多的线程最终会使内存总线饱和而无法提供额外的内核。此外,GC 线程(工作分区)之间的协调可能会变得更加低效,因为每个线程只能在堆的一小部分上工作。


无论如何,这不是一刀切的规则,因此您可以更改设置、测量它并在您确认改进后保持更改。


查看完整回答
反对 回复 2021-08-06
  • 1 回答
  • 0 关注
  • 414 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信