Openshift 3.11多个POD上的堆转储OOM

Openshift 3.11多个POD上的堆转储OOM,openshift,heap-dump,Openshift,Heap Dump,在OpenShift 3.11跑步应用程序中,我试图获得一个HeapDump,因为我怀疑我的豆荚上有OOM 我的应用程序在14个副本上运行,我想将以下配置附加到Java选项 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=file:///my/path/jdump/ 路径位于外部装入的卷上 现在我知道默认的文件名是 java_pid1.hprof 但是从一个 ps -ef | grep java 我注意到,大多数pod在这个过程中使用相同

在OpenShift 3.11跑步应用程序中,我试图获得一个HeapDump,因为我怀疑我的豆荚上有OOM

我的应用程序在14个副本上运行,我想将以下配置附加到Java选项

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=file:///my/path/jdump/
路径位于外部装入的卷上

现在我知道默认的文件名是

java_pid1.hprof 
但是从一个

ps -ef | grep java
我注意到,大多数pod在这个过程中使用相同的pid,我担心如果一个OOM同时出现在多个pod上,我会遇到当代访问和写入文件的问题

有没有办法参数化文件名?我想象一下

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=file:///my/path/jdump/{$podname}_dump.href

thanx很多关于您的答案

您可以将一个pod名称公开为env变量,然后在您的命令中使用它,即

命令:[“/bin/java”]
args:
-“-jar”
-“你的.jar”
-“-XX:+HEAPDUMPONAUTOFMEMORYERROR”
-“-XX:HeapDumpPath=file:///my/path/jdump/$(MY_POD_NAME)\u dump.href“
环境:
-姓名:我的名字
价值来源:
fieldRef:
fieldPath:metadata.name
注意$(MY_POD_NAME)语法-reference


将字段公开为环境变量:

thanx很多,我会尝试让您知道