我需要能够在没有运行任何 XWindows 的 linux 机器上运行的 VM 上进行一些内存采样。我尝试过远程进行,但显然 JVisualVM 不支持远程内存采样。
我的替代方案是什么?
谢谢!
您可以jmap
用来获取内存样本(又名堆转储)。heap.hprof
下面的命令在当前目录中创建一个文件
。
jmap -dump:format=b,file=heap.hprof <pid>
获得样品后,您可以将其转移到另一台机器上,使用您喜欢的任何工具进行分析。我推荐内存分析器。
这取决于您想要什么类型的采样。jmap
控制台工具(来自 JDK bin 文件夹)允许某种内存转储等。
在您的 linux 服务器上设置远程 DISPLAY 并运行 jvisualvm 以便 ui 显示在您的本地 xserver 上。它可能很慢,但它会起作用。
软件路径:
[软件/visualvm_14/bin] -> ll
-rw-r--r-- 1 xxxxxxx xx 6287 Dec 11 15:52 visualvm
-rw-r--r-- 1 xxxxxxx xx 190464 Dec 11 15:52 visualvm.exe
1st file is for Lx OS
2nd file is for Windows OS
启动应用程序的命令:
for Linux "jvisualvm"
for Windows "double click the .exe file"