jps
查看java进程
jstat
查看GC状态
# 百分比展示
jstat -gcutil [pid] [interval]
# 查看gc
jstat -gc [pid]
# 查看new区
jstat -gcnew [pid]
# 查看old区
jstat -gcold [pid]
jstack
查看线程
jmap
dump内存信息
jmap -dump:file=file_name [pid]
查看内存信息
jmap -heap [pid]
jconsole
监控和管理控制台
visualVM
非自带 功能类似 jconsole,但是有一些高级功能,比如可以触发GC、dump内存信息、查看dump信息
扩展: JVM 参数 在OutOfMemonryError的时候自动dump内存信息
XX:+HeapDumpOnOutOfMemoryError
jmx参数
设置jmx参数
JAVA_OPTS="$JAVA_OPTS -Xmx1024m -Djava.rmi.server.hostname=192.168.19.114 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9998 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
# 详细说明
#192.168.19.114为tomcat所在机器的ip地址。
-Djava.rmi.server.hostname=192.168.19.114
#开启jmx,jdk1.5之前还要手动开启,现在已经默认开启了,所以可以省略
-Dcom.sun.management.jmxremote
#jmx的端口
-Dcom.sun.management.jmxremote.port=9998
#不开启验证
-Dcom.sun.management.jmxremote.authenticate=false
#不开启ssl通信
-Dcom.sun.management.jmxremote.ssl=false
拓展
在Docker中环境变量
version: '0.01'
services:
java-dome:
image: java:8
restart: always
container_name: java-dome
environment:
# 设置时区
- TZ=Asia/Shanghai
# 设置java环境变量
- JAVA_OPTS="$JAVA_OPTS -Xmx1024m -Djava.rmi.server.hostname=192.168.19.114 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9998 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
ports:
# 设置端口
- 8770:8770
volumes:
- /home/java_dome:/java_dome:rw
- /tmp
command: java -Djava.security.egd=file:/dev/./urandom -jar -Xms512m -Xmx1024m /java_dome/dome.jar