JVM常用命令:
jps -l -v : 查看java进程、-v 表示查看进程启动时JVM参数
eg生产环境:
[root@5b6601a30f74 local]# jps -l -v
65 app.jar
-Dspring.profiles.active=prod
-Dspring.cloud.config.uri=http://itconfig.zte.com.cn/it-config-server
-Dspring.cloud.config.label=zte-rd-icenter
-Dspring.cloud.config.username=icenter-ci
-Dspring.cloud.config.password=icenter-ci*123
-javaagent:/usr/local/apm-agent-v2.0/pinpoint-bootstrap-1.8.1.jar
-Dpinpoint.agentId=spacesync-5b6601a30f74
-Dpinpoint.applicationName=ICENTER_zte-icenter-spacesync
-Dsun.net.inetaddr.ttl=300 -Dsun.net.inetaddr.negative.ttl=5
-Xms3g -Xmx3g
-XX:+UseConcMarkSweepGC
-XX:ConcGCThreads=2
-XX:CMSInitiatingOccupancyFraction=75
-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-Xloggc:/opt/logs/spacesync__5b6601a30f74_gc.log
-XX:NewRatio=2
-XX:MaxTenuringThreshold=15
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/logs/spacesync__5b6601a30f74_dump.dump
jstat :虚拟机统计信息--查看gc信息、类加载、内存、即时编译器运行时数据
jstat -gc pid 1000 10 : 打印进程为pid的gc信息(C-总量 U-使用),每1000ms打印1次,打印10次
jstat -gcutil pid 1000 10 : 打印进程为pid的gc信息(U/C比例),每1000ms打印1次,打印10次
-gcold --查看老年代 -gcnew --查看新生代
JVM常用参数:
垃圾收集器:
-XX:+UseConcMarkSweepGC :使用ParNew + CMS +SerialOld,其中SerialOld作为CMS收集器出现“Concurrent Mode Failure”失败后后备收集器
-XX:CMSInitiatingOccupancyFraction=75 :
-XX:ConcGCThreads=2 :并发标记、并发清理的执行线程数
-XX:CMSInitiatingOccupancyFraction=75 :设置CMS老年代回收时空间使用阀值为75%
-XX:+UseCMSCompactAtFullCollection #强制jvm在full gc后进行空间碎片整理
-XX:+PrintGC #输出GC日志
-XX:+PrintGCDetails #打印GC详细日志
-XX:+PrintGCTimeStamps
-Xloggc:/opt/logs/spacesync__5b6601a30f74_gc.log :GC日志文件路径
-XX:+HeapDumpOnOutOfMemoryError :发生OOM时备份heapdump文件
-XX:HeapDumpPath=/opt/logs/spacesync__5b6601a30f74_dump.dump :配置OOM时heapdump文件生成路径
堆内存:
-Xms3g :最小堆容量3g
-Xmx3g:最大堆容量3g
-XX:NewRatio=2 :新生代与老年代比例为1:2
-XX:SurvivorRatio =8 : 新生代 Eden : S0: S1 =8:1:1
-XX:MaxTenuringThreshold=15 : 晋升老年代的对象年龄(每次YGC后存活的对象年龄+1),超过这个年龄就进入老年代
-XX:CMSFullGCsBeforeCompaction=10 #上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩
方法区(元空间):
-XX:MetaspaceSize 指定初始大小,达到阈值,会触发垃圾回收进行类型卸载。
-XX:MaxMetaspaceSize:默认-1.受限本地内存大小。
-XX: