相关疑难解决方法(0)

运行jmap获取无法打开套接字文件

我必须运行jmap才能获取我的进程的堆转储.但jvm回来了:

Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
Run Code Online (Sandbox Code Playgroud)

所以我使用了-F:

./jmap -F -dump:format=b,file=heap.bin 10330
Attaching to process ID 10331, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.51-b03
Dumping heap to heap.bin ...
Run Code Online (Sandbox Code Playgroud)
  1. 使用-F 是可以进行堆转储吗?
  2. 我等了20分钟还没完呢.有什么想法吗?

java linux jvm jvm-hotspot

76
推荐指数
4
解决办法
5万
查看次数

如何在窗口中进行堆转储,停机时间最短?

我想弄清楚为什么Elasticsearch节点上的JVM堆使用率始终保持在80%以上.为了做到这一点,我通过运行来进行堆转储

jmap.exe -heap:format=b 5348
Run Code Online (Sandbox Code Playgroud)

(5348是进程ID).然后我可以使用VisualVM分析转储.

问题是jmap在进行转储时暂停JVM,因此节点基本上处于脱机状态大约5分钟.

本文提出了一种更快的方法,它依赖于gdb在Linux 上使用coredump .我已经尝试过WinDbg,它创建了一个核心转储,但我无法在VisualVM中使用它.

Windows有类似的方法吗?如何在几秒钟内完成堆转储,而不是几分钟?

jvm jmap heap-dump elasticsearch

3
推荐指数
1
解决办法
2551
查看次数

标签 统计

jvm ×2

elasticsearch ×1

heap-dump ×1

java ×1

jmap ×1

jvm-hotspot ×1

linux ×1