我知道我们可以使用 JProfiler 等工具。有没有关于如何配置它以仅通过远程监控显示内存使用情况的教程?
任何想法?
你有 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;
};
在远程机器上,您获得了应用程序的 pid 以使用 jps 工具进行调试:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps
最后在您的本地机器上启动 visualgc :
visualgc the_pid@remote_machine_address
我通常使用 YourKit,这是一个优秀的应用程序(需要许可证)。
在您的网络服务器启动/关闭脚本(catalina.sh for tomcat)中输入:
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 客户端并进行远程连接。
使用 Jprofiler 分析您的应用程序。以下是使用 Jprofiler 配置 Tomcat 的步骤。
在 Linux 机器.bash_profile
中从/root
目录中打开文件。
在中输入 jprofiler 位置(使用下面的命令导出)
.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
命令从 bin 文件夹启动服务器
我听说过 VisualVM 的好东西,这里有一篇关于如何远程启动它的文章:
编辑:我在这里写了一篇关于如何通过 SSH 隧道设置远程分析的博客文章: