VisualVM 之 Jstatd

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 14:35   72   0

在开发大型Java项目时,我们可能会遇到内存溢出、性能问题等诸多问题,比如文件、数据库的连接未释放,程序未优化等。今天介绍一下VisualVM的使用,如何通过VisualVM看到程序的运行状况,来帮助我们分析程序的缺陷。(VisualVM在这里就不做介绍了)

第一步:服务端(需要监控的地方)Jstatd启动

1、创建XXX.policy文件

文件内容

grant codebase "file:$JAVA_HOME/lib/tools.jar" { permission java.security.AllPermission; };

注意:

  • $JAVA_HOME是本机java的路径,自行替换
  • 可以在任意目录下创建此文件,文件名随便起,但是后缀(.policy)不能变

2、启动Jstatd

启动命令,启动路径是$JAVA_HOME/bin

./jstatd -J-Djava.security.policy=/opt/visualvm-test/jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.124.18 -p 2222 -J-Djava.rmi.server.logCalls=true

后台运行启动命令

./jstatd -J-Djava.security.policy=/opt/visualvm-test/jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.124.18 -p 2222 -J-Djava.rmi.server.logCalls=true > /opt/visualvm-test/out.file 2>&1 &

XXXX.... > /opt/visualvm-test/out.file : 输出重定向到/opt/visualvm-test/out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。

2>&1 :是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

注意:

  • .policy文件路径根据自己目录替换
  • 主机名可以是IP也可以是名称
  • 端口任意,但需要放开

3、启动效果

ps -ef | grep jstatd

第二步:使用VisualVM远程链接

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP