博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JVisualVM对内存线程的分析使用
阅读量:6935 次
发布时间:2019-06-27

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

简介

JVisualVM是jdk自带的工具在jdk的安装目录的bin目录下,直接双击就能运行

这里写图片描述

点击运行后,能自动监视到 tomcat 、idea、eclipse等工具的进程

这里写图片描述

安装gc 线程插件

这里写图片描述

jvm内存模型一目了然

这里写图片描述

监测远程服务器

启动RMI服务

在需要被监控的服务器上面,通过jstatd来启动RMI服务

首先,配置java安全访问,在服务器jdk路径(/java_home/bin)下新建文件
名称: jstatd.all.policy
内容:

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

然后在进入jstatd.all.policy所在目录下,通过如下的命令启动RMI服务:

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

或者

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.22.11

修改服务器 hosts 文件中的 IP 地址

要使Java VisualVM 成功连接到远程服务器上,服务器端应该在 /etc/hosts 文件中把本机地址设为本机的 IP 地址。使用 hostname -i 命令查看,如果显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,需要把 /etc/hosts 文件中相应的地址改为本机实际 IP 。

这里写图片描述

这里写图片描述

这里写图片描述

运行 jstatd 守护程序

由于 jstatd 需要保持一直运行,所以建议使用 screen 命令执行 jstatd 程序,命令如下:

Java代码 收藏代码

screen jstatd -J-Djava.security.policy=jstatd.all.policy

如果需要RMI 日志功能的话,还可以在启动参数中加入 -J-Djava.rmi.server.logCalls=true 。

screen jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true

jstatd开始运行后,使用 CTRL+A+D 断开 screen 界面,回到 shell 界面。如果想切换回 jstatd 运行界面的话,使用 screen -r -d 命令即可。

监测远程tomcat

1、修改catalina.sh,在 tomcat 的 catalina.sh 中添加如下参数

JAVA_OPTS='-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false'

説明

注:1. -Dcom.sun.management.jmxremote.port :这个是配置远程 connection 的端口号的,要确定这个端口没有被占用
2. -Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl
3. -Dcom.sun.management.jmxremote.authenticate=false 指定了JMX 是否启用鉴权(需要用户名,密码鉴权)
2,3两个是固定配置,是 JMX 的远程服务权限的
4. -Djava.rmi.server.hostname :这个是配置 server 的 IP 的

最后可以监测到tomcat

这里写图片描述

你可能感兴趣的文章
设计模式之【适配器--Adapter】
查看>>
iOS开发常用输入校验
查看>>
UML类图及依赖,泛化,关联,聚合,组合,实现
查看>>
13. Spring Boot 拦截器
查看>>
bootstrap Grid布局(网格布局)
查看>>
java实现HeapSort
查看>>
Spring 事务
查看>>
MySQL 中国省市区SQL表数据
查看>>
HTML5取代不了Flash
查看>>
BNU52325-Increasing or Decreasing-数位DP-DFS
查看>>
JDK源码阅读--StringBuffer
查看>>
(45) Manifest文件
查看>>
微信小程序中的bindTap事件(微信小程序开发QQ群:604788754)
查看>>
九度 1149 子串计算
查看>>
消息中间件基础
查看>>
IIS特殊字符设置
查看>>
javascript 函数对象
查看>>
js中作用域链的问题
查看>>
[Silverlight] How to make a simple PivotTable extended from Silverlight DataGrid
查看>>
javaScript 基本包装类型
查看>>