JVM常用项目启动参数
## 初始堆大小 4g
-Xmx4g
# 最大堆大小4g
-Xms4g
# 年轻代大小(1.4or lator)整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。
# 持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。
# 此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-Xmn512m
# 设置元空间初始大小为256m
-XX:MetaspaceSize=256m
# 设置元空间最大可分配大小512m
-XX:MaxMetaspaceSize=512m
# 每个线程的堆栈大小256k
-Xss256k
# 降低每次Full GC的时间,其实就是启用多线程去执行
-XX:+ExplicitGCInvokesConcurrent
# 启用CMS做为垃圾收集
-XX:+UseConcMarkSweepGC
# 只有开启了这个参数,CMSInitiatingOccupancyFraction这个参数才会生效
-XX:+UseCMSInitiatingOccupancyOnly
# CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收。
-XX:CMSInitiatingOccupancyFraction=70
# 选项指定在默认垃圾收集器的并行操作期间使用的线程数为4
-XX:ParallelGCThreads=4
# 关闭用户偏向锁
-XX:-UseBiasedLocking
# 参数是设置Integer缓存上限的参数,在VM初始化期间java.lang.Integer.IntegerCache.high属性可以被设置和保存在私有的系统属性sun.misc.VM class中。
# 理论上讲,当系统需要频繁使用Integer时,或者说堆内存中存在大量的Integer对象时,可以考虑提高Integer缓存上限,避免JVM重复创造对象,提高内存的使用率,减少GC的频率,从而提高系统的性能。
-XX:AutoBoxCacheMax=20000
# 设置的是年龄阈值,默认15(对象被复制的次数),这里设置成了6次
-XX:MaxTenuringThreshold=6
# 打印垃圾收集时 , 系统的停顿时间
-XX:+PrintGCApplicationStoppedTime
# 打印CG发生的时间戳
-XX:+PrintGCDateStamps
# 来打印详细的GC日志来查看
-XX:+PrintGCDetails
# 会打印Code Cache区的使用情况。
-XX:+PrintCodeCache
# 指定gc的log日志所在位置/dev/shm/gc.log
-Xloggc:/dev/shm/gc.log
# 打开或关闭GC日志滚动记录功能,要求必须设置 -Xloggc参数
-XX:+UseGCLogFileRotation
# 设置滚动日志文件的个数,必须大于1日志文件命名策略是,<filename>.0, <filename>.1, ..., <filename>.n-1,其中n是该参数的值
-XX:NumberOfGCLogFiles=2
# 设置滚动日志文件的大小,必须大于8k当前写日志文件大小超过该参数值时,日志将写入下一个文件
-XX:GCLogFileSize=10m
# 表示当JVM发生OOM时,自动生成DUMP文件。
-XX:+HeapDumpOnOutOfMemoryError
# 发生了 内存溢出错误 dump路径为root/logs/ (一般与HeapDumpOnOutOfMemoryError参数一块使用)
-XX:HeapDumpPath=/root/logs/
网友评论