Java gc信息设置和查看
参考:
https://www.cnblogs.com/mikevictor07/p/5024645.html
OOM不会导致JVM退出
引言
啥?设置GC以及查看GC信息
我都是java -jar **.jar
我low 逼啊
GC参数设置
GC参数 | 含义 |
---|---|
-verbose:gc | 打印GC的概要信息 |
-XX:+PrintGC | 打印GC的概要信息 |
-XX:+PrintGCDetails | 可以打印GC的详细信息 |
-XX:+PrintGCTimeStamps | 输出GC的时间戳(以基准时间的形式) |
-XX:+PrintGCDateStamps | 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+0800) |
-XX:+PrintHeapAtGC | 在进行GC的前后打印出堆的信息 |
-XX:+TraceClassLoading | 监控类的加载 |
-Xloggc:D:\gc.log | 输出GC文件(就不会输出到控制台了) |
-XX:+HeapDumpOnOutOfMemoryError | OOM时导出堆到文件 |
-XX:+HeapDumpPath | 导出OOM的路径 |
-XX:OnOutOfMemoryError | 参数允许用户指定当出现oom时,指定某个脚本来完成一些动作。 |
-XX:+UseGCLogFileRotation | 设置日志轮转 |
-XX:NumberOfGCLogFiles=10 | 日志轮转个数 |
-XX:GCLogFileSize=10M | 日志大小 |
-XX:+DisableExplicitGC | 关闭显示GC |
-XX:+PrintGCApplicationStoppedTime | 输出GC造成应用暂停的时间 |
java 监控
java -Dserver.port=9999 \
-Xmx256m \
-Xms256m \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=9102 \
-Dcom.sun.management.jmxremote.rmi.port=9102 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.access.file=$(pwd)/jmxremote.access \
-Dcom.sun.management.jmxremote.password.file=$(pwd)/jmxremote.password \
-Djava.rmi.server.hostname=192.168.11.110 \
-jar \
test-0.0.1-SNAPSHOT.jar
java 远程调试
java -Dserver.port=9999 \
-Xmx256m \
-Xms256m \
-Xdebug \
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=39090 \
-jar \
test-0.0.1-SNAPSHOT.jar