-verbose:gc -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:/user/crb-order-api-gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10m
JAVA_OPTS='-Xms3096m -Xmx3096m -Dsun.net.inetaddr.ttl=180' 这个只是用于设置堆内存的大小,而JVM运行过程中到底会向操作系统申请多少内存,这个是由JVM在运行过程中动态决定的,我们无法设置
JVM参数
-
-Xmx1800M:设置 JVM 最大可用内存为 1800M。
-
-Xms1000m:设置 JVM 初始化内存为 1000m。此值可以设置与 -Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存。
-
-Xmn350M:设置年轻代大小为 350M。整个 JVM 内存大小 = 年轻代大小 + 年老代大小。增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun 官方推荐配置为整个堆的 3/8。
-
-Xss300K:设置每个线程的堆栈大小。JDK5.0 以后每个线程堆栈大小为 1M,以前每个线程堆栈大小为 256K。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在 3000~5000 左右。
- -XX:SurvivorRatio=8 让垃圾在新生代时尽可能的多被回收掉。
- -XX:MetaspaceSize=200M 设置元空间位200M,默认为21M
- -XX:CMSInitiatingOccupancyFraction=75 设置垃圾回收器为CMS, 当老年代达到75%时,触发CMS垃圾回收
GC日志相关
- -verbose:gc 代开GC日志的方式之一。与-XX:+PrintGC作用相同,两个参数可选一种。
- -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps 打印GC日志配置
- -Xloggc:/tmp/gc.log GC日志路径
- -XX:GCLogFileSize=10m GC日志的大小
- -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 使用GC日志滚动删除功能,保留10个文件