-XX:杀死-3时HeapDumpPath不起作用。
java -server -Xms4G -Xmx4G -XX:+UseG1GC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:{GC_PATH} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath={HEAP_PATH} -jar -Dspring.profiles.active=local app.jar
gc日志以正确的{GC_PATH}打印。但是堆转储在标准输出中打印。
我的jvm配置有问题吗?或者在杀死-3时不起作用?
答案 0 :(得分:1)
HeapDumpPath
仅影响为响应以下选项之一而生成的自动堆转储:
-XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpBeforeFullGC
-XX:+HeapDumpAfterFullGC
它对其他方式产生的堆转储没有影响,例如通过JMX调用的jmap
命令或dumpHeap
操作。
HeapDumpPath
对线程转储也不起作用。特别是,kill -3
将在Java进程的stdout
上打印线程堆栈。如果要将线程转储到给定文件,请使用jstack
。