Tomcat启动优化参数说明

-server:

server 启用jdk 的 server 版;
只要你的tomcat是运行在生产环境中的,这个参数必须添加
因为tomcat默认是以一种叫java –client的模式来运行的,server即意味着你的tomcat是以真实的production的模式在运行的,这也就意味着你的tomcat以server模式运行时将拥有:
更大、更高的并发处理能力,更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量......

-Xms–Xmx

-Xms java虚拟机初始化时的最小内存;其初始空间(即-Xms)是物理内存的1/64,
-Xmx java虚拟机可使用的最大内存; 最大空间(-Xmx)是物理内存的1/4。

可以利用JVM提供的-Xmn -Xms -Xmx等选项,
要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。

把Xms与Xmx两个值设成一样是最优的做法,一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。因为默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。

-Xss

是指设定每个线程的堆栈大小。一般设置不超过1M,要不然容易出现out of memory。

-XX:+AggressiveOpts

可以将最新版的JDK优化后的新特性自动注入

-XX:+UseBiasedLocking

启用一个优化了的线程锁,对于高并发访问很重要 ,太多的请求忙不过来它自动优化,
对于各自长短不一的请求,出现的阻塞、排队现象,他自己优化。

-XX:PermSize -XX:MaxPermSize

-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;
在数据量的很大的文件导出时,一定要把这两个值设置上,否则会出现内存溢出的错误。
-XX:MaxPermSize设置最大非堆内存的大小,默认是32M,建议达到物理内存的1/4

-XX:MaxNewSize

新生代内存的最大内存值,默认是16M

-XX:+DisableExplicitGC

在程序代码中不允许有显示的调用”System.gc()”,避免内存的大起大落

-XX:MaxTenuringThreshold

设置垃圾最大年龄。
1 如果设置为零的话,则年轻代对象不经过Survivor区直接进入年老代。对于年老代比较多的应用,可以提高效率。
2 如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概率。
这个值的设置是根据本地监控后得到的一个理想的值,不能一概而论原搬照抄。

-XX:+UseConcMarkSweepGC 

即CMS gc,这一特性只有jdk1.5即后续版本才具有的功能,它使用的是gc估算触发和heap占用触发。
我们知道频频繁的GC会造面JVM的大起大落从而影响到系统的效率,因此使用了CMS GC后可以在GC次数增多的情况下,每次GC的响应时间却很短,比如说使用了CMS GC后经过jprofiler的观察,GC被触发次数非常多,而每次GC耗时仅为几毫秒
 添加该参数表示启动并发标识-清理(Mark-Sweep)回收器(CMS)

-XX:+UseParNewGC

对年轻代采用多线程并行回收,这样收得快

-XX:+CMSParallelRemarkEnabled

在使用UseParNewGC 的情况下, 尽量减少mark 的时间,降低标记停

-XX:+UseCMSCompactAtFullCollection

在使用concurrent gc 的情况下, 防止 memoryfragmention, 
对live object 进行整理, 使 memory 碎片减少。

-XX:LargePageSizeInBytes

指定 Java heap的分页页面大小

-XX:+UseFastAccessorMethods

get,set 方法转成本地代码(对于jvm来说是冗余代码,jvm将进行优化)

-XX:+UseCMSInitiatingOccupancyOnly

指示只有在 old generation 在使用了初始化的比例后concurrent collector 启动收集

-Djava.awt.headless=true

这个参数一般我们都是放在最后使用的,这全参数的作用是这样的,有时我们会在我们的J2EE工程中使用一些图表工具如:jfreechart,用于在web网页输出GIF/JPG等流,在winodws环境下,一般我们的app server在输出图形时不会碰到什么问题,但是在linux/unix环境下经常会碰到一个exception导致你在winodws开发环境下图片显示的好好可是在linux/unix下却显示不出来,因此加上这个参数以免避这样的情况出现。

猜你喜欢

转载自blog.csdn.net/wxd_1024/article/details/80653211