如何从使用WL应用程序服务器在Linux上运行的远程 JVM 获取aheap转储?
当我在Windows机器上本地运行时,我知道如何获得转储。但是,如何从用户验收测试服务器获取转储?提前谢谢。
答案 0 :(得分:3)
您可以使用JMX连接到远程应用程序服务器(应该提前启用)并使用允许进行堆转储的HotSpotDiagnostic MBean。 您可以使用JConsole或JVisualVM来调用MBean操作 Mike Haller的这个post描述了如何将此方法与JVisualVM一起使用。
答案 1 :(得分:2)
由于它是一个* -nix系统,如果你有必要的私有系统,那么使用 SSH 协议很容易连接:
连接到远程计算机:
ssh user@remote-machine-ip-address
提示输入用户密码(应该是远程计算机上的用户密码,而不是当前系统用户的密码)。
使用jmap
实用程序生成堆转储(JDK二进制文件路径应该可用于您的系统PATH变量或使用它的完整路径):
jmap -dump:format=b,file=cheap.bin <pid>
答案 2 :(得分:2)
有三个步骤:
ssh <your_user_name>@<remote_ip>
jmap -dump:format=b,file=<your_file_name> <your_jvm_pid>
jhat -J-Xmx512m <your_file_name>
jhat -port 7401 <your_file_name>
我写了一篇博客来帮助分析性能问题:Performance Optimization