JVM学习笔记

我们前面说了很多原理,现在我们就开始实战,说一下JVM的调优参数:

一般情况JVM调优参数如下:

set JAVA_OPTS=-server -Xms1400M -Xmx1400M -Xmn768M -Xss128k -XX:PermSize=256M -XX:MaxPermSize=256M  -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:GCTimeRatio=19 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled  -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -Xnoclassgc -XX:+DisableExplicitGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -Xloggc:../logs/gc.log
下面对这些参数做一个详细的解释:

-server 启用能够执行优化的编译器, 显著提高服务器的性能,但使用能够执行优化的编译器时,服务器的预备时间将会较长。

-Xms1548M 初始化堆大小

-Xss128k  线程的栈大小

-Xmx1548M 最大堆大小

-Xmn768M 年轻代大小

-XX:PermSize=128M 初始化持久代大小

-XX:MaxPermSize=128M 最大持久代大小

-XX:SurvivorRatio=5 年轻代中Eden区与两个Survivor区的比值,Survivor是两个,所以Eden与Survivor的比值是5:2,Eden区占了5/7.

-XX:MaxTenuringThreshold=7 表示一个对象如果在救助空间移动7次还没有被回收就放入年老代

-Xnoclassgc 缺省情况下,当一个类没有任何活动实例时,JVM 就会从内存中卸装该类,但是这样会使性能下降。如果关闭类垃圾回收,就可以消除由于多次装入和卸装同一个类而造成的开销

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled  -XX:+CMSClassUnloadingEnabled 由于使用的框架是Spring/Hibernate大量采用cglib,导致生成的Proxy会比较多,而这些是存放在PermGen区域,sun JDK默认情况下不会去回收,必须加上-XX:+CMSClassUnloadingEnabled  -XX:+CMSPermGenSweepingEnabled参数,JDK才会去回收这部分数据

-XX:+DisableExplicitGC 加了這個參數會停止掉WLS或是程式內直接呼叫GC,減少不必要的GC,將GC交由JVM去執行

-XX:+UseParNewGC   设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值

-XX:+UseCMSCompactAtFullCollection 打开对年老代的压缩。可能会影响性能,但是可以消除碎片(老年代才会有full gc)

-XX:CMSFullGCsBeforeCompaction=5  CMSFullGCsBeforeCompaction=N表示执行N次Full GC后执行内存压缩

-XX:-CMSParallelRemarkEnabled  降低标记停顿

-XX:CMSInitiatingOccupancyFraction=50 CMS堆上, 使用50%后开始CMS收集

-XX:SoftRefLRUPolicyMSPerMB=0 "softly reachable objects will remain alive for some amount of time after the last time they were referenced. The default value is one second of lifetime per free megabyte in the heap"

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:../logs/gc.log

-XX:+PrintGCDetails:输出形式:[GC [DefNew: 8614K->781K(9088K), 0.0123035 secs] 118250K->113543K(130112K), 0.0124633 secs] [GC [DefNew: 8614K->8614K(9088K), 0.0000665 secs][Tenured: 112761K->10414K(121024K), 0.0433488 secs] 121376K->10414K(130112K), 0.0436268 secs]

-XX:+PrintGCTimeStamps -XX:+PrintGC:PrintGCTimeStamps可与上面两个混合使用

输出形式:11.851: [GC 98328K->93620K(130112K), 0.0082960 secs]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值