5

私は、可能な限り多くの CPU を使用する Java アプリケーションを使用しており、それによって大量のメモリ (最大 80Gb) を使用しています。

私はそのアプリの GC を最適化しており、JVM に指定された時間 (60%) を GC に使用するように指示したいと考えています。そうしないと、マシンが GC にない時間が処理され、より多くのメモリが割り当てられます。

パラメータが探しているものであることを確認したかった-XX:CMSIncrementalDutyCycle=60のですが、GC により多くのパワーを与える他のパラメータがあるかどうかを確認したかったのです (私はすでに と を見ましたCMSIncrementalPacing) CMSIncrementalDutyCycleMin

本当にありがとう!

4

3 に答える 3

1

XX:CMSIncrementalDutyCycle=60 パラメーターが探しているものであること、および GC により多くの電力を与える他のパラメーターがあるかどうかを確認したかった (CMSIncrementalPacing と CMSIncrementalDutyCycleMin は既に見た)

いいえ、あなたは間違っています。このフラグは、使用可能な CPU の何パーセントが JVM の GC に割り当てられるかを制御しません。ドキュメントには次のように記載されています。

-XX:CMSIncrementalDutyCycle=<N> default: 50

これは、並行コレクターが実行できるマイナー コレクションの時間の割合 (0 から 100) です。CMSIncrementalPacing が有効になっている場合、これは単なる初期値です。

したがって、CMS コレクター ( ) を使用していると仮定すると、-XX:+UseConcMarkSweepGC上記のフラグは、CMS がマイナー GC コレクション間で実行できる時間の割合を制御します。

GC スレッドの実行時間を直接制御できるフラグはありません。

于 2013-04-01T18:02:35.740 に答える
1

GC 収集中の CPU 使用率に上限を設定することはできません。

マイナー コレクション間の時間CMSIncrementalDutyCycleを設定するために使用され( [1]を参照)、GC の実行頻度を制御し、CPU 使用率を間接的に制御できます。ただし、CPU 使用率を直接制御できるパラメーターはありません。

于 2013-04-01T18:02:46.447 に答える