首页 » 语言&开发 » Java » JDK命令行工具相关整理(3)

JDK命令行工具相关整理(3)

 

jstatd

启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。

一个监控守护进程而已,需要配合其他命令行工具发挥功效。

<br />#创建一个policy文件,提供权限


 cd /tmp/

 touch jstatd.all.policy

#修改文件

 vim jstatd.all.policy

#添加以下内容到jstatd.all.policy


grant codebase "file:/opt/java/jdk1.7.0_79/lib/tools.jar" {

  permission java.security.AllPermission;

};

#修改文件属性

 chmod 755 jstatd.all.policy

#后台执行 jstatd

 jstatd -J-Djava.security.policy=/tmp/jstatd.all.policy   &



#默认开放的是1099端口,可以通过以下命令进行修改

jstatd -J-Djava.security.policy=/tmp/jstatd.all.policy -p 10999  &



#绑定到本机ip


jstatd -J-Djava.security.policy=/tmp/jstatd.all.policy -J-Djava.rmi.server.hostname=172.16.22.251 &

jmx配置

要实现远程监控,需要可视化的OS能连上远程的机器,不然需要做端口转发,然后进行远程生产环境监控。

  • 以下是JVM直接配置参数:

    远程机器的程序需要加上JVM参数

    -Dcom.sun.management.jmxremote=true

    -Dcom.sun.management.jmxremote.port=6970

    -Dcom.sun.management.jmxremote.ssl=false

    -Dcom.sun.management.jmxremote.authenticate=false

    备注:另外需要检查 hostname –i,看解析出来是否为本地的IP,如是127.0.0.1或者IP为多个IP中之一,则其他的IP无效,会连接不上。

    也可以使用如下的参数手动指定 hostname 或者 ip 地址

    -Djava.rmi.server.hostname=172.16.22.251

  • Tomcat下配置监控参数设置

在catalina.sh中的JAVA_OPTS中配置以下前四行内容即可

JAVA_OPTS="-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=6970

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

-Djavax.servlet.request.encoding=UTF-8

-Dfile.encoding=UTF-8

-Xms512m -Xmx1024m -XX:MaxNewSize=512m

-XX:MaxPermSize=512m

-Dnetworkaddress.cache.ttl=60 -Dsun.net.inetaddr.ttl=60"

jvisualvm

jvisualvm的功能及ui比jconsole还要强大的跨平台可视化工具。

关于使用,如果是开发时监控本机的JVM,那不需要任何参数,只需要执行命令行工具jvisualvm即可。

具体使用就不解释了。

远程连接jstatd

查看jstat相关信息的监控

关于远程使用,这个时候就需要刚才介绍的jstatd守护线程的帮忙了。这样做了好处是,不用修改远程程序的配置,直接就可以

监控远程的JVM,当然,如果生产环境的话,还需要端口转发等工具的帮助。

如下图:

jstat-jvisualvm

远程连接jmx

更强大的远程监控

可以监控jstatd可以监控的内容,同时可以监控cpu,具体的线程等信息。

如下图:

jmx-jvisualvm



原文链接:JDK命令行工具相关整理(3),转载请注明来源!

0