Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JVM堆转储写入标准输出_Java_Docker_Heap Dump - Fatal编程技术网

Java 将JVM堆转储写入标准输出

Java 将JVM堆转储写入标准输出,java,docker,heap-dump,Java,Docker,Heap Dump,我们使用以下JVM标志在Docker内部运行Spring引导应用程序(由Kubernetes管理) 正如预期的那样,容器会在OOM异常时重新启动。但是,由于容器已重新启动,在退出时创建的堆转储(在/tmp中)不再可用。虽然我们可以映射一个持久卷,但有没有一种方法可以将堆转储写入STDOUT(因为我们已经从STDOUT收集日志)?使用-XX:HeapDumpPath=/dev/stdout会导致 * * 是否有一个简单的工作是我在这里缺少的?就我个人而言,我会使用一个挂载在Docker映像中并存储

我们使用以下JVM标志在Docker内部运行Spring引导应用程序(由Kubernetes管理)

正如预期的那样,容器会在OOM异常时重新启动。但是,由于容器已重新启动,在退出时创建的堆转储(在/tmp中)不再可用。虽然我们可以映射一个持久卷,但有没有一种方法可以将堆转储写入STDOUT(因为我们已经从STDOUT收集日志)?使用
-XX:HeapDumpPath=/dev/stdout
会导致

*

*


是否有一个简单的工作是我在这里缺少的?

就我个人而言,我会使用一个挂载在Docker映像中并存储在那里的内存转储,如前所述,可以是GBs大。

一个堆转储™ 大多数情况下都是巨大的(即堆大小,可能至少有几百MB)。你真的想把它扔出去吗?我知道它可能很大。但是,正如我所提到的,我们已经将STDOUT内容路由到我们的日志基础设施,该基础设施可以处理相同的问题。
-XX:HeapDumpPath=/dev/stdout/`date`.hprof
Dumping heap to /dev/stdout ...
Unable to create /dev/stdout: File exists
-XX:HeapDumpPath=/dev/stdout/`date`.hprof