jvm线上优化(快速反应类型应用)

<server id="" address="127.0.0.1" port="6800">  
<jvm-arg>-server</jvm-arg> 
最大堆大小  
<jvm-arg>-Xmx4096M</jvm-arg>  
初始堆大小  
<jvm-arg>-Xms4096M</jvm-arg>  
年轻代大小  
<jvm-arg>-Xmn1280M</jvm-arg> 
设置年轻代中Eden区与Survivor区的大小比值 
6意味这10-6-1=3 ,30%的内部会被浪费掉,用于保存未回收掉的对象,然后复制对象
<jvm-arg>-XX:SurvivorRatio=6</jvm-arg>  
每个线程的堆栈大小  
<jvm-arg>-Xss1024k</jvm-arg>  
持久代大小  
<jvm-arg>-XX:PermSize=256M</jvm-arg>  
持久代大小  
<jvm-arg>-XX:MaxPermSize=256M</jvm-arg> 
并发收集器cms,cms作为老生代收集器时,默认新生代使用ParNew收集器,serial old 当CMS收集器出现concurrent mode failure的时候失败后的后备收集器
ParNew收集器实际上市串行收集器的多线程版本,是并行收集,还是需要“stop the world”,停止用户线程 
CMS收集器采用标记-清理算法,是并发收集,用户线程和收集线程交替进行 
新生代收集采用标记复制和标记整理算法 
parNew+CMS+Serial Old
<jvm-arg>-XX:+UseConcMarkSweepGC</jvm-arg> 
使用并发收集器时full gc 之后,开启对年老代的压缩,也就是进行一次碎片整理  
<jvm-arg>-XX:+UseCMSCompactAtFullCollection</jvm-arg>  
降低标记停顿  
<jvm-arg>-XX:+CMSParallelRemarkEnabled</jvm-arg>  
持久代进行GC  
<jvm-arg>-XX:+CMSClassUnloadingEnabled</jvm-arg>  
CMS并发收集  
<jvm-arg>-XX:+ExplicitGCInvokesConcurrent</jvm-arg>  
使用cms作为垃圾回收使用80%后开始CMS收集  
<jvm-arg>-XX:CMSInitiatingOccupancyFraction=80</jvm-arg>  
强制要求jvm每次都要抛出有堆栈的异常  
<jvm-arg>-XX:-OmitStackTraceInFastThrow</jvm-arg>  
<thread-max>778</thread-max>  
<socket-timeout>30s</socket-timeout>  
<keepalive-max>1556</keepalive-max>  
<keepalive-timeout>60s</keepalive-timeout>  
</server>  

你可能感兴趣的:(jvm线上优化(快速反应类型应用))