4

最近、jboss サーバーが xms 4096m、xmx 4096m、permsize 512m で実行されていたときに、hprof 形式でヒープダンプを作成しました。

生成された hprof ファイルは 5 GB を超えています。visualvm、mat アナライザー、または yourkit でヒープダンプをロードすると、合計バイト数が約 1 GB しか表示されません。キットの到達可能範囲を変更しようとしましたが、1 GB を超えて表示されません。

ファイルサイズと表示されたヒープダンプサイズのこの大きな違いが何を引き起こす可能性があるか考えていますか?

ps: jdk1.6.0_23 を使用しています

残念ながら、ここでスクリーンショットを送信することは許可されていません。

ファイルシステムでは、hprof のサイズは 5.227.659 kb であり、キットには次のように記載されています。

オブジェクト: 9.738.282 / 浅いサイズ 740 mb / 保持サイズ: 740 mb それらの間で到達可能な文字列: 6.652.515 (68%) / 浅いサイズ: 381 mb (51%) / 保持サイズ: 381 MB (51%)

保持される最大サイズは、206.810.176 の byte[] です。

4

3 に答える 3

2

ヒープダンプを生成するためにどのコマンドを使用しましたか?

$JAVA_HOME/bin/jmap -dump:live,format=b,file=c:/tmp/heap_dump.bin PID

仕様によると、ライブオプションを渡す必要があるかもしれません

 -dump:<dump-options> to dump java heap in hprof binary format
                   dump-options:
                     live         dump only live objects; if not specified,
                                  all objects in the heap are dumped.
于 2012-07-26T10:22:12.023 に答える
2

"Unreachable Objects Histogram" ("Overview" ページの上部からリンクを見つけることができます) を試しましたか? サイズが 1509MB のヒープダンプの 1 つで、mat は 454MB しか示していませんが、残りは本質的にガベージであり、確かに、到達不能オブジェクト ヒストグラムの「浅いヒープ」の合計は 966MB です。

于 2012-07-27T07:45:19.760 に答える