【问题标题】:Is there way to connect profiler OSE JAVA app pods?有没有办法连接分析器 OSE JAVA 应用程序 pod?
【发布时间】:2018-05-23 15:49:06
【问题描述】:
- 我的 Spring Boot 应用程序中存在内存泄漏
它能够在 5 秒内处理 70 个并发请求,并且在我的本地机器上运行流畅
当我在 OSE 上部署相同的应用程序时,它会产生内存不足问题
我正在尝试将 java 分析工具连接到远程 OPENSHIFT java pod?
是否有任何程序可以收集堆转储或将配置文件工具(jvisualvm)连接到 ose pod?
【问题讨论】:
标签:
java
profiling
openshift
jprofiler
【解决方案1】:
在内存不足的情况下,有手动收集 ThreadDump 和 HeapDump 的方法
- oc get pods -> 列出 Pods
- oc rsh pod -> 远程 shell 到 pod
- "jmap -dump:format=b,file=heap_dump1.hprof 1" -> 运行 JMAP 命令收集堆转储
- "jcmd 1 Thread.print > threaddump.txt" -> 运行 jcmd 收集线程转储
- oc volume dc/yourApp --add --claim-size 512M --mount-path --name downloads -> 创建持久卷
手动连接 pod 后,在 ose 终端 3 & 4 上显式执行命令
直到应用程序到达 OOM 并且由于持久卷上的转储日志将不会被清除
- 将 heapDump 文件和 threadDump 文件从 OSE pod 复制到本地文件系统
用“tar”压缩后
oc rsync