2016-09-06 1 views
1

最新のG1ガベージコレクタを使用したいが、私が使用するときにメモリ割り当てエラーが発生する状況に遭遇している。私はこれがOSにメモリを解放しているので、これは信じています。そして、OSは、CMSコレクタでは発生しないので、JVMが要求したときにJVMに要求を返すことを許可していません。私が実行している特定のサーバは、GCコレクタで正常に動作しています(GCの一時停止に加えて).GIに移動すると、約6時間後にこれらの割り当てエラーが発生し、JVMが存在します。G1コレクタ使用時にJVMがヒープをOSに戻さないようにする

これがG1コレクタで起​​こるのを防ぐことは可能かどうかは明らかではありませんが、コミュニティの誰かが回答を得ることを望んでいました。

ありがとう!

+2

'-Xms'オプションは、JVMに割り当てられた初期ヒープを設定します。これにより、割り当てられたヒープがOSに戻されるのを防ぐことができると思います。 –

+0

あなたは実際には「OSはJVMにそれを返すことを許可していません」と決めましたか?それとも、CMSの失敗を観察しただけの推論ですか? – the8472

+0

私は、OSがJVMにメモリを戻すことを許可していないと思うほどの証拠はありませんが、G1の主な機能の1つがリリースされることがわかっているのでメモリをOSに戻します。私はこれが根本原因であるかどうかを判断し、それを無効にして再度テストする最良の方法を見つけます。 –

答えて

0

-XX:MaxHeapFreeRatio=100は、ヒープのサイズを小さくしないようにしてください。

これは実際にjvmがクラッシュした場合、より深刻な問題を指摘するでしょう。アプリケーションからのすべての割り振り要求に対して、マシン上に十分なメモリーがあるか、そうでないメモリーがあります。あなたがJVMを貪欲に保とうとすれば、他の何かが苦しんでいなければならないでしょう。

関連する問題