VisualVM监控java应用内存状态
来源:互联网 发布:软件开发 改22 80端口 编辑:程序博客网 时间:2024/05/17 06:29
使用JAVA VisualVM 来监控应用
VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。
jdk下可以使用jre不行,而且只支持1.5以上的jdk版本。
- jstatd模式连接
- JMX方式连接
- 关于内存区域OOM
一. jstatd启动方法:
首先在目标远程主机上添加jstatd.all.policy文件。
文件内容
grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};
然后执行命令,启动jstatd:
jstatd -J-Djava.security.policy=jstatd.all.policy
如果是linux环境注意机器ip配置
使用 hostname -i 命令查看,如果显示的是 127.0.0.1 或者与本机实际 IP 不一致的话,需要把 /etc/hosts 的地址改为本机实际 IP 。
启动之后若jvisualvm连接不上,可以使用:
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=IP地址
一. JMX配置:
jmx的权限文件通常在 /usr/lib/jvm/java-1.8.0-openjdk-版本号/jre/lib/management/
jmxremote.password 及 jmxremote.access 两个文件,一个用于记录账号密码,一个用于设置权限
jmxremote.password 文件默认没有,复制jmxremote.password.template文件即可,最下面这两行反注释掉即可启用
# monitorRole QED# controlRole R&D
账号为monitorRole,密码为QED,注意:jmxremote.password权限需为600
权限级别观察jmxremote.access文件底部。
java的启动语句里添加
-Dcom.sun.management.jmxremote.port=3000 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=3000 \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.ssl=false \
即可启动jmx监听3000端口。
tomcat的catalina.sh添加配置:
JAVA_OPTS='-Djava.rmi.server.hostname=192.168.0.237 -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 的端口号的,要确定这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false 指定了 JMX 是否启用 ssl
-Dcom.sun.management.jmxremote.authenticate=false 指定了JMX 是否启用鉴权(需要用户名,密码鉴权)
2,3两个是固定配置,是 JMX 的远程服务权限的
-Djava.rmi.server.hostname :这个是配置 server 的 IP 的
.进入JAVA_HOME\jre\lib\management\目录
b.拷贝jmxremote.password.template这个文件到当前目录, 并改名为jmxremote.password
c.打开jmxremote.password文件,去掉 # monitorRole QED 和 # controlRole R&D 这两行前面的注释符号
- VisualVM监控java应用内存状态
- java VisualVM 远程监控linux jvm运行状态
- VisualVM java监控工具
- 用visualvm监控远程java进程内存回收
- VisualVM 实现JVM内存监控
- JVM内存监控:VisualVM远程监控JVM
- JVM内存监控:VisualVM远程监控JVM
- java visualvm 远程监控 配置
- 用visualVM监控java进程
- Java VisualVM 监控远程机器
- 使用Java VisualVM监控JVM
- 使用visualVM监控JAVA程序
- 使用Java VisualVM监控JVM
- 用visualVM监控java进程
- Java VisualVM监控远程JVM
- Java VisualVM监控远程JVM
- MyEclipse Profile 结合visualvm 监控内存泄露
- MyEclipse Profile 结合visualvm 监控内存泄露
- 使用PLSQL 对oracle数据库备份和还原
- ios中基于科大讯飞SDK进行人脸装扮
- 结构对齐示例
- oracle-修改字符集为UTF-8
- HDU 3397 Sequence operation 线段树综合题
- VisualVM监控java应用内存状态
- String if null then
- Mycat 哪些sql不能解析
- jbox 弹出多个对话框的问题解决方法
- STM32学习笔记之芯片简介
- oracle增删改字段、建表、建序列
- 编写Java程序,用三元运算符和if嵌套完成此题。
- 运行SSH框架的Javaweb项目时,提示Java.lang.ClassNotFoundException:org.apache.commons.lang.xwork.StringUtils。
- 排序--归并排序