最大ヒープ サイズが 4 ギガで、GC が GC 間隔で-Xms4096m -Xmx4096m -Xmn1024m
構成されたアプリケーションを実行しています。-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=50
Dsun.rmi.dgc.server.gcInterval=43200000 -Dsun.rmi.dgc.client.gcInterval=43200000
突然、アプリケーションがメモリ不足の例外をヒープし、同時にスレッド ダンプとヒープ ダンプを取得しました。スレッド ダンプを分析すると、hashMap と arrayList に何らかの値が作成されるため、スレッドがスタックします。ByteArrayOutStream はスレッドの 1 つでロックを作成しました。
Eclipse メモリ アナライザー ツールでヒープ ダンプを分析すると、bytearray オブジェクトがほぼ 1 ギグのヒープを占めていることが明確に示されます。GCViewer からは、秒単位でピークがあることがわかります。バイト配列オブジェクトが突然 1 ギガのスペースを使用した理由がわかりません。誰かが犯人を絞り込むのを手伝ってくれませんか。
-- アプリケーション サーバー - Weblogic 12c