【发布时间】:2013-10-01 14:25:03
【问题描述】:
我需要能够在没有运行任何 XWindows 的 linux 机器上运行的 VM 上进行一些内存采样。我尝试过远程进行,但显然 JVisualVM 不支持远程内存采样。
我有什么选择?
谢谢!
【问题讨论】:
我需要能够在没有运行任何 XWindows 的 linux 机器上运行的 VM 上进行一些内存采样。我尝试过远程进行,但显然 JVisualVM 不支持远程内存采样。
我有什么选择?
谢谢!
【问题讨论】:
您可以使用jmap 获取内存样本(也称为堆转储)。下面的命令创建一个文件
heap.hprof 在当前目录中。
jmap -dump:format=b,file=heap.hprof <pid>
获得样品后,您可以将其转移到另一台机器上,使用您喜欢的任何工具进行分析。我推荐Memory Analyzer。
【讨论】:
这取决于您想要的采样类型。 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"
【讨论】: