最近,我正在使用 jvm 選項(xiàng)來提高性能。當(dāng)我學(xué)習(xí) GC 選項(xiàng)時(shí)ParallelGCThreads,我遇到了一個(gè)問題。我認(rèn)為最好的值ParallelGCThreads是邏輯處理器的數(shù)量。但在我的 32 核機(jī)器上,默認(rèn)值是 23。來自 oracle 的文章Garbage First Garbage Collector Tuning,它告訴我們處理器數(shù)量大于 8,默認(rèn)值為ParallelGCThreads是處理器的 5/8。那么,為什么是 5/8 而不是 8/8?
1 回答

HUWWW
TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
這個(gè) hotspot-gc-dev 線程暗示在非常大的 CPU 或多 CPU 系統(tǒng)上,額外線程的收益遞減,因此線性縮放因子減少到 8 個(gè)內(nèi)核以上。
這可能是因?yàn)?GC 本質(zhì)上是受內(nèi)存限制的,并且足夠多的線程最終會(huì)使內(nèi)存總線飽和而無法提供額外的內(nèi)核。此外,GC 線程(工作分區(qū))之間的協(xié)調(diào)可能會(huì)變得更加低效,因?yàn)槊總€(gè)線程只能在堆的一小部分上工作。
無論如何,這不是一刀切的規(guī)則,因此您可以更改設(shè)置、測(cè)量它并在您確認(rèn)改進(jìn)后保持更改。
添加回答
舉報(bào)
0/150
提交
取消