常见JVM参数汇总

常见配置举例:
设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k
设置:-Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0
吞吐量优先的并行收集器,并行收集器主要以到达一定的吞吐量为目标,适用于科学技术和后台处理等。
配置:-Xmx3800m -Xms3800m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20
配置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:ParallelGCThreads=20 -XX:+UseParallelOldGC 
配置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100 -XX:+UseAdaptiveSizePolicy 
响应时间优先的并发收集器,并发收集器主要是保证系统的响应时间,减少垃圾收集时的停顿时间,使用与应用服务器,电信领域等。
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection 
##案例:在Eclipse配置JVM的参数
通过Run as->Run Configurations-->Arguments-->VM Arguments
##JVM调优之Tomcat启动参数配置及详解
Tomcat内存溢出
    在Tomcat 启动脚本(catalina.sh/catalina.bat)首行添加如下配置即可解决此问题
    JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=512m"
#参数解析
##堆设置 

-Xms:初始堆大小 
-Xmx:最大堆大小  建议Xmx与-Xmx相同,避免每次垃圾回收完成后JVM重新分配内存
-Xmn:年轻代大小  (堆=年轻代+年老代+永久代 增大年轻代会减小年老代)建议堆*3/8
-Xss:每个线程的堆栈大小 (小应用 栈浅128k/ 大应用256k 对性能影响比较大,需要严格的测试)
-XX:NewSize=n:年轻代大小 
-XX:NewRatio=n:年老代:年轻代比值
-XX:SurvivorRatio=n:年轻代中 Eden:SFrom:STO=n:1:1
-XX:PretenureSizeThreshold:直接晋升到老年代的对象大小
-XX:MaxTenuringThreshold=0:垃圾最大年龄.
    设置0 年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.
    如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象在年轻代的存活 时间,增加在年轻代即被回收的概率.
-XX:PermSize:永久代(perm gen)初始值。默认为物理内存的1/64。
-XX:MaxPermSize:持久代最大值。物理内存的1/4。

##垃圾回收统计信息 
-XX:+PrintGC 
-XX:+PrintGCDetails 
-XX:+PrintGCTimeStamps 
-XX:+PrintGCDateStamps — 打印GC操作的时间戳
-Xloggc:filename :把相关日志信息记录到文件以便分析。
-XX:PrintHeapAtGC :打印GC前后的详细堆栈信息


##收集器设置 
-XX:+UseSerialGC:串行收集器 虚拟机Client模式-Serial+Serial Old
-XX:+UseParallelGC:并行收集器 虚拟机server模式-Parallel Scavenge+Serial Old
-XX:+UseParNewGC:使用ParNew+SerialOld

-XX:+UseParalledlOldGC:并行年老代收集器 Parallel Scavenge+Parallel Old
-XX:+UseConcMarkSweepGC:并发收集器 ParNew+CMS+Serial Old(后备 CMS出现Concurrent Mode Failure失败)


##并行收集器设置 
-XX:ParallelGCThreads=n:并行收集器收集时使用的CPU数.并行收集线程数. 
-XX:MaxGCPauseMillis=n:并行收集最大暂停时间  Parallel Scavenge收集器
-XX:GCTimeRatio=n:垃圾回收时间占程序运行时间的百分比.公式为1/(1+n) 默认99为1%的GC时间,使用Parallel Scavenge收集器时


##并发收集器设置 
-XX:+CMSIncrementalMode:为增量模式.适用于单CPU情况. 
-XX:ParallelGCThreads=n:并发收集器年轻代收集方式为并行收集时,使用的CPU数.并行收集线程数. 

##其他:
-XX:-DisableExplicitGC — 让System.gc()不产生任何作用
-XX:PrintTenuringDistribution — 设置每次新生代GC后输出幸存者乐园中对象年龄的分布
-XX:InitialTenuringThreshold / -XX:MaxTenuringThreshold:设置老年代阀值的初始值和最大值
-XX:TargetSurvivorRatio:设置幸存区的目标使用率
-XX:+UseAdaptiveSizePolicy:动态调整java堆中各个区域的大小以及进入老年代的年龄
-XX:+HandlePromotionFailure:是否允许分配担保失败,即老年代的剩余空间不足以应付新生代的整个Eden和Survivor区的所有对象都存活的极端情况

##cms收集器启动后 相关参数设置
注意:并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片”,使得运行效率降低. 
CMSFullGCsBeforeCompaction=5:cms在n次GC后,启动内存碎片整理。
UseCMSCompactAtFullCollection:cms完成后,启动内存碎片整理
CMSInitiatingOccupancyFraction:老年代使用多少后触发cms 默认68%

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值