2016-10-13 4 views
0

Javaプロセスでは奇妙な問題があります。 これは-Xmx3gで開始し、いくつかの点で、それは投げ始めた。-Xmxで起動してもJVMヒープが2gで固まる3G

エラーがスローされた頃GCログを確認する
java.lang.OutOfMemoryError: Java heap space 

、ヒープサイズは2Gで立ち往生ようですか?

... 
12893.533: [Full GC 2248110K->2248109K(2315776K), 0.4723440 secs] 
212894.006: [Full GC 2248110K->2248109K(2315776K), 0.4823290 secs] 
212894.490: [Full GC 2248110K->2248110K(2315776K), 0.4642130 secs] 
212894.955: [Full GC 2248114K->2248112K(2315776K), 0.4866180 secs] 
... 

これを説明できる理由は何でしょうか。

多くのおかげで、 ジョージ

+0

これが起こった時点で、サーバーに約5GのRAMが無料であったと言えば、すべてのRAMがその時点で使用されていないので、 – GeorgeK

+0

32ビットまたは64ビットJVMを使用しているかどうかを確認してください。 –

+0

GCログの詳細を投稿してください。投稿したものは若い世代のサイズが表示されません。 OOMEを投げるコールサイトでの割り当てがどれだけ大きいかを把握する必要があります。 – the8472

答えて

0

これは完全なヒープを収集し、主要なGCログ、です。

ヒープは若い世代だけでなく、GC hotspot VM generationsによって収集されないパーマネント/バーチャルの多くの部分で構成されているため、3GヒープがGCログに約2.3Gを表示するのは合理的です。

エラーは、ヒープがいっぱいだがGCがオブジェクトを収集できないため、ヒープが必要になるか、ヒープのサイズを変更する必要があるために発生します。設定に問題がないかどうかを確認するには、単に-Xmx5Gを使用してヒープが2Gでスタックされているかどうかを確認します(これは起こりません)。

関連する問題