jvm监控工具

使用 jvisualvm 远程监控 JVM

一、jmx 方式

加上如下启动参数,以 tomcat 为例,修改 bin\catalina 文件,在开始位置添加 JAVA_OPTS
JAVA_OPTS="-Djava.rmi.server.hostname=192.168.8.229 -Dcom.sun.management.jmxremote.port=1100 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

## 开启 JMX 远程服务权限
# -Dcom.sun.management.jmxremote.port:配置远程 connection 的端口号
# -Dcom.sun.management.jmxremote.ssl:指定 JMX 是否启用 ssl
# -Dcom.sun.management.jmxremote.authenticate:指定 JMX 是否启用密码
# -Djava.rmi.server.hostname:配置 Server IP(不要使用 127.0.0.1)
# -Dcom.sun.management.jmxremote.rmi.port=2222
# -Dcom.sun.management.jmxremote.local.only=false
# -Dcom.sun.management.jmxremote=true

JDK8 可以直接使用,Windows 下打开 JDK 目录下的 bin/jvisualvm.exe 程序

image

添加 JMX 连接,填写地址和端口即可

image

查看堆栈

image

二、Jstatd 方式

在 $JAVA_HOME/bin 下创建 jstatd.all.policy 文件

cd /opt/jdk-11.0.7/bin/
vim jstatd.all.policy

# 有 tools.jar(JDK8)
grant codebase "file:${java.home}/lib/tools.jar" {
    permission java.security.AllPermission;
};


# 没有 tools.jar(JDK11)
grant codebase "jrt:/jdk.jstatd" {
    permission java.security.AllPermission;
};

grant codebase "jrt:/jdk.internal.jvmstat" {
    permission java.security.AllPermission;
};

启动

cd /opt/jdk-11.0.7/bin/ nohup jstatd -J-Djava.rmi.server.hostname=192.168.8.136 -J-Djava.security.policy=./jstatd.all.policy -p 1099 & jps -l
image

使用 arthas远程监控 JVM

https://github.com/alibaba/arthas/wiki

你可能感兴趣的:(jvm监控工具)