私は-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50
とDsun.rmi.dgc.server.gcInterval=43200000 -Dsun.rmi.dgc.client.gcInterval=43200000
ヒープダンプ分析 -
のGC間隔として設定GCとmaxmimumヒープサイズ-Xms4096m -Xmx4096m -Xmn1024m
の4回のギグを持つアプリケーションを実行しているのOutOfMemory例外の根本的な原因を探すには、突然、私のアプリケーションは、メモリ不足にヒープに行きました例外と私は同じ機会にスレッドダンプとヒープダンプを取った。スレッドダンプを解析すると、hashMapとarrayListに値が生成されるためスレッドが停止します。 ByteArrayOutStreamはスレッドのいずれかにロックを作成しました。
eclipseメモリアナライザツールでヒープダンプを分析すると、bytearrayオブジェクトがヒープのほぼ1ギグを占めていることが明らかです。 GCViewerから、それは秒の小数部にピークを有することが示される。私はなぜ突然バイト配列オブジェクトがスペースの1ギグを使用したのか分かりません。何人かが私を助けて犯人を絞ることができますか?
- アプリケーションサーバー - ヒープは日食メモリ分析ツールでダンプ分析上のWebLogic 12cを
提供された情報で何かを言うのは難しいです。消費しているメモリコードの詳細を表示できますか? – Minh
バイト配列であることがわかっても、あまり役に立ちません。何が問題になったのかの手掛かりを得るためには、アプリケーションのどのオブジェクトが配列を使用しているかを調べなければなりません。 MATでは、階層を包含オブジェクトに移動することができます。 –
多くのコードの詳細が役に立つでしょう。提供されたjvmフラグを使用してデフォルトのアプリケーションを実行すると、何も複製されません。 –