2016-11-18 6 views
0

jvmがシグナル3でヒープダンプを生成していないことに気付きました。 jvm 1.8.60とjvm 1.7.60(ubuntu 14)を試しました。 jvmがシグナルを受け取ると、スレッドダンプがコンソールに出力されますが、メモリダンプファイルは表示されません。 JavaオプションをトレースJvm heapdumpがシグナルで生成されていない

java -XX:HeapDumpPath=/tmp/xxx

が、それはすべての権利だということを確認します。

bool PrintHeapAtSIGBREAK = true {product}
ccstr HeapDumpPath := /tmp/xxx {manageable}

私は何を逃したのですか?

jmapも動作します。

同じユーザーの下でkillとjvmが実行されます。 jarはhello worldアプリです。

答えて

0

JVMは、SIGQUIT(殺す-3)のヒープ・ダンプを生成することになっていないダンプを取得するためにjmapを使用することができます。

PrintHeapAtSIGBREAKは異なることを意味します。ヒープレイアウトの要約を出力します。

Heap 
PSYoungGen  total 75264K, used 3870K [0x000000076c600000, 0x0000000771a00000, 0x00000007c0000000) 
    eden space 64512K, 6% used [0x000000076c600000,0x000000076c9c7b68,0x0000000770500000) 
    from space 10752K, 0% used [0x0000000770f80000,0x0000000770f80000,0x0000000771a00000) 
    to space 10752K, 0% used [0x0000000770500000,0x0000000770500000,0x0000000770f80000) 
ParOldGen  total 172032K, used 0K [0x00000006c5200000, 0x00000006cfa00000, 0x000000076c600000) 
    object space 172032K, 0% used [0x00000006c5200000,0x00000006c5200000,0x00000006cfa00000) 
Metaspace  used 2471K, capacity 4486K, committed 4864K, reserved 1056768K 
    class space used 267K, capacity 386K, committed 512K, reserved 1048576K 

jmapは、ヒープダンプを生成する正しい方法です。

0

-XX:HeapDumpPathは、-XX:HeapDumpOnOutOfMemoryと一緒に使用した場合にのみ動作します。参考文献はOracle docs です。 スタックトレースはjstackで取得することも、JDKに含まれているJava Mission ControlツールでJVMを監視することもできます。

編集:あなたはまた、ヒープが

関連する問題