JVM虚拟机性能监控 - yiyixiaozhi/readingNotes GitHub Wiki
[TOC]
环境说明:
- jdk启动的jar所在系统的版本:CentOS Linux release 7.6.1810 (Core)
- jdk版本:jdk-8u261-linux-x64
- 客户端win10,和服务端使用同一个jdk版本
先确保安装了jdk。由于我本身安装的是jre,所以先卸载,然后安装jdk。
操作方法如下:
-
查询已安装的java程序
# rpm -qa | grep java-1.8 java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
-
卸载jre
# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 # rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
在java安装目录:/usr/java/default/lib 新建文件all.policy
# cd /usr/java/default/lib
# vi all.policy
给all.policy
添加如下内容:
grant codebase "file:/usr/java/default/lib/tools.jar" {
permission java.security.AllPermission;
};
通过jstatd启动RMI服务,执行:
$ rmiregistry -J-Djava.rmi.server.codebase=file:/usr/java/default/lib/tools.jar 1099 &
$ jstatd -J-Djava.security.policy=/usr/java/default/lib/all.policy -p 1099 -J-Djava.rmi.server.hostname=47.105.126.142 &
hostname注意需要配置为公网ip
java -Dcom.sun.management.jmxremote.port=7199 #供JMX客户端远程连接用的端口号
-Dcom.sun.management.jmxremote.authenticate=false #关闭账号密码认证,不安全,仅在开发阶段使用
-Dcom.sun.management.jmxremote.ssl=false #关闭SSL
-Djava.rmi.server.hostname=106.117.142.x #指定本机供远程访问的IP地址,此处是本机的公网IP
-Xms512m -Xmx512m -jar zuul-1.0-SNAPSHOT.jar &
示例:
java -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=47.105.126.142 -Xms512m -Xmx512m -jar yyxz-admin-8087.jar &
在防火墙中配置放行7199端口。如果为云主机,在安全组中配置放开上面的端口。
执行netstat -nltp命令可以查看JVM进程监听的端口,本示例中启动的java进程的PID为18962,通过下面的查询可知需要额外放行的两个端口为33407和33889。
# netstat -nltp
## 其中:-n表示表示输出中不显示主机,端口和用户名,-l表示只显示监听listening端口,-t表示只显示tcp协议的端口,-p表示显示进程的PID和进程名称。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:33889 0.0.0.0:* LISTEN 19209/java
tcp 0 0 0.0.0.0:33407 0.0.0.0:* LISTEN 18962/jstatd
如果为云主机,在安全组中配置放开上面的端口。
插件下载:
https://visualvm.github.io/pluginscenters.html
https://visualvm.github.io/uc/8u131/updates.html
也可以在线安装,安装如下几个插件:
启动C:\Program Files\Java\jdk1.8.0_73\bin\jconsole.exe
VM概要
CPU、内存使用等
启动C:\Program Files\Java\jdk1.8.0_73\bin\jvisualvm.exe