[英]How to do memory profiling on remote java web application
我知道我们可以使用像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;
};
在远程计算机上,您可以使用jps工具调试应用程序的pid:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps
终于在你的本地机器上你启动了visualgc:
visualgc the_pid@remote_machine_address
我通常使用YourKit这是一个很好的应用程序(需要许可证)。
在你的webservers启动/关闭脚本(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客户端并进行远程连接。
您可以更改为Java应用程序的VM参数,以允许远程分析像-agentlib:jprofilerti=port=25000
例子:
使用Jprofiler配置您的应用程序。 以下是使用Jprofiler配置Tomcat的步骤。
在Linux机器中,从/root
目录打开.bash_profile
文件。
在中输入jprofiller位置(使用下面的命令导出)
.bash_profile file export LD_LIBRARY_PATH=/dsvol/jprofiler6/bin/linux-x86
去Tomcat安装目录。 从bin
文件夹中打开catalena.sh
文件。
在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隧道设置远程分析的博客文章:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.