我知道我们可以使用像JProfiler等工具。 有没有关于如何配置它以仅通过远程监控显示内存使用情况的教程?
有什么想法吗?
答案 0 :(得分:8)
你有VisualGC,它不是很先进,但你可以看到你的应用程序的内存使用情况(垃圾,旧,烫发等......)
http://java.sun.com/performance/jvmstat/visualgc.html
恢复: 您在远程计算机上启动守护程序监视(http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstatd.html,请参阅安全性副本)
JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy
这里有一个名为 jstatd.all.policy 的文件,其中包含:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
在远程计算机上,您使用jps工具调试应用程序的pid:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps
最后在您的本地计算机上启动visualgc:
visualgc the_pid@remote_machine_address
答案 1 :(得分:7)
我通常使用YourKit,这是一个很好的应用程序(需要许可证)。
在你的webservers启动/关闭脚本(tomcat的catalina.sh)中输入:
JAVA_OPTS="-Djava.awt.headless=true -agentlib:yjpagent -Xrunyjpagent:sessionname=Tomcat"
您需要已下载YourKit并将其添加到您的库路径中(我也在catalina.sh中执行此操作):
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/yourkit/yjp-6.0.16/bin/linux-x86-32
然后,您可以在本地桌面上启动YourKit客户端并远程连接。
答案 2 :(得分:3)
您可以更改为Java应用程序的VM参数,以允许远程分析
像-agentlib:jprofilerti=port=25000
General explanation of JProfiler
示例:
答案 3 :(得分:1)
使用Jprofiler配置您的应用程序。以下是使用Jprofiler配置Tomcat的步骤。
在Linux机器中打开.bash_profile
目录中的/root
文件
在
.bash_profile file
export LD_LIBRARY_PATH=/dsvol/jprofiler6/bin/linux-x86
去Tomcat安装目录。从catalena.sh
文件夹中打开bin
文件
在catelana.sh
文件中输入以下详细信息(默认情况下,您可以在catalena.sh文件中找到红色信息和黑色)。
export JPROFILER_HOME
JAVA_OPTS="-Xms768m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF8 -agentpath:/opt/Performance/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849 $CATALINA_OPTS"
执行starup.sh
命令
答案 4 :(得分:0)
我听说过VisualVM的好东西,这里有一篇关于如何远程操作的文章:
Java VisualVM to profile a remote server
修改强>: 我写了一篇关于如何通过SSH隧道设置远程分析的博客文章: