首页 > 解决方案 > jvm 配置中的 -XX:HeapDumpPath 选项不起作用

问题描述

-XX:HeapDumpPath 在 kill -3 时不起作用。

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 配置有什么问题吗?或者 kill -3 时不起作用?

标签: javalinuxjvm

解决方案


HeapDumpPath仅影响响应以下选项之一而生成的自动堆转储:

  • -XX:+HeapDumpOnOutOfMemoryError
  • -XX:+HeapDumpBeforeFullGC
  • -XX:+HeapDumpAfterFullGC

它对其他方式生成的堆转储没有影响,例如通过 JMX 调用的jmap命令或操作。dumpHeap

对线程转储也HeapDumpPath没有影响。特别是,将打印Java 进程的线程堆栈。如果要将线程转储到给定文件,请使用.kill -3stdoutjstack


推荐阅读