博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用VisualVM监视远程JVM
阅读量:5899 次
发布时间:2019-06-19

本文共 2425 字,大约阅读时间需要 8 分钟。

VisualVM介绍

VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。

在JDK Update7之后,VisualVM作为JDK的一部分发布,但同时VisualVM也发布独立的版本。VisualVM必须运行在JDK1.6以上的VM环境下,但可以用它来监控JDK1.4以上的JVM
下载地址:

配置jetty------匿名

修改启动脚本:

vi /srv/jetty6/mtct

在RUN_CMD后面追加:

#指定hostname 一般情况需要重新指定hostname,否则连接不成功-Djava.rmi.server.hostname=192.168.0.147#指定hostname 指定端口默认:1099-Dcom.sun.management.jmxremote.port=8899#禁止ssl连接-Dcom.sun.management.jmxremote.ssl=false#禁止用户认证-Dcom.sun.management.jmxremote.authenticate=false

另一种配置------认证配置

#指定hostname 一般情况需要重新指定hostname,否则连接不成功-Djava.rmi.server.hostname=192.168.0.147#指定hostname 指定端口默认:1099-Dcom.sun.management.jmxremote.port=8899#禁止ssl连接com.sun.management.jmxremote.ssl=false#开启用户认证com.sun.management.jmxremote.authenticate=true#认证用户名密码-Dcom.sun.management.jmxremote.password.file=/opt/home/lichengwu/jvm/management/jmxremote.password#访问模式-Dcom.sun.management.jmxremote.access.file=/opt/home/lichengwu/jvm/management/jmxremote.access

注意:jmxremote.password和jmxremote.access文件只允许启动用户名对该文件拥有读写权限 ,我们服务用root启动 所以:

[root@dog:management]# chmod 600 *[root@dog:management]# chown root:root *[root@dog:management]# lltotal 8-rw------- 1 root root 29 Nov 14 16:38 jmxremote.access-rw------- 1 root root 26 Nov 14 16:38 jmxremote.password[root@dog:management]#

如果权限设置不正确会报错:Error: Password file read access must be restricted

jmxremote.password模板:

[用户名]       [密码]mtct          ct.meituantest          test

jmxremote.access模板:

[用户名]      [权限]mtct        readwritetest        readonly

第三种配置------SSL

参考:

  1. 在服务器上使用keytool创建密钥对
    keytool是java平台自带的一个密钥和证书管理工具,使用keytool创建密钥对:
    keytool -genkey -alias jetty -keystore /opt/home/lichengwu/jvm/ssl/jettyKeyStore

    按照提示输入相关信息(包括设定密码、姓、组织名等),这些信息是可以随便输入的,但从产品角度讲应该统一设定。输入的密码在今后操作中均需要使用。

  2. 导出公钥
    keytool -export -alias jetty -keystore /opt/home/lichengwu/jvm/ssl/jettyKeyStore -file /opt/home/lichengwu/jvm/ssl/jetty.cert
  3. 将公钥导入至需要运行VisualVM的机器。(我的是windows 放在 Z:\jvm\ssl\jetty.cert)
    keytool -import -alias jetty -keystore Z:\jvm\ssl\jettyKeyStore -file Z:\jvm\ssl\jetty.cert
  4. 修改jetty的启动脚本
    将-Dcom.sun.management.jmxremote.ssl="false"修改为:-Dcom.sun.management.jmxremote.ssl="true",并添加:-Djavax.net.ssl.keyStore=/opt/home/lichengwu/jvm/ssl/jettyKeyStore-Djavax.net.ssl.keyStorePassword=123456
  5. 使用如下参数启动VisualVM:
    VisualVM -J-Djavax.net.ssl.trustStore=Z:\jvm\ssl\jettyKeyStore

    监控

启动VisualVM,添加远程主机:

 输入远程主机地址:192.168.0.147

 修改端口,如果是默认端口,可可跳过

 添加JMX连接

完成后双击:

转载地址:http://ohxsx.baihongyu.com/

你可能感兴趣的文章
Hadoop生态圈-Kafka的完全分布式部署
查看>>
css的border的solid
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
jQuery自动完成点击html元素
查看>>
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
linux 将大文件分成小文件
查看>>
CCNA- 距离矢量路由协议学习
查看>>
jira 配置 LDAP 访问
查看>>
企业实践用户邮箱导入/导出(第2部分)
查看>>
我的友情链接
查看>>
如何学习Linux命令-初级篇
查看>>
从Oracle Public Yum为Oracle Linux建立本地的Yum源
查看>>
在 SELECT 查询中使用表表达式
查看>>
静态路由和默认路由
查看>>
谈一谈Spring-Mybatis在多数据源配置上的坑
查看>>