Tomcat6优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tomcat6 Optimize
实验条件
数据库服务器
操作系统信息
SYSTEM : Linux flume5 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 GNU/Linux
硬件配置信息
CPU : 4CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz Cache size : 12288 KB
MEMORY : 4G
数据库服务器信息
MySql版本:Server version: 5.5.24-log MySQL Community Server (GPL)
备注:修改默认MySql服务器连接限制100为1024
应用服务器
操作系统信息
SYSTEM : Linux flume5 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64 GNU/Linux
硬件配置信息
CPU : 4CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz Cache size : 12288 KB
MEMORY : 4G
中间件服务器信息
Tomcat版本:apache-tomcat-6.0.32
备注:系统线程数目没有限制(NPTL内核)
以上数据因为服务器公用原因,并不纯净,但基本能保证内存空闲在2.5G上,CPU使用也足够空闲1内存
1.1概念
Tomcat内存优化其实也就是对JVM内存进行设置
1.2配置位置
配置位置:%TOMCAT_HOME%/bin下,
Window:catalina.bat
Linux/Unix:catalina.sh
首行添加:JAVA_OPTS=-Xms256m –Xmx256m …
注意:Linux环境下:JAVA_OPTS=”-Xms256m –Xmx256m …”,即参数要加引号,不然不起作用
1.3内存参数配置
以下值大部分情况为默认值,应根据具体服务器硬件配置及业务特性来配置
-Xverify:none关闭大部分类验证措施,以缩短虚拟机类加载时间
-Xms16m堆内存初始值(M>1G ? 1G/64 : M/64)
-Xmx256m堆内存最大值(M>1G ? 1G/4 : M/4)
-Xmn4m新生代初始值(迸发收集器下通过该值来设置,该设置优先级高于-XX:NewRatio)-XX:NewRatio=2 老年代与新生代比值(迸发收集器下默认=7)
-XX:SurvivorRatio=8 Eden区与Survivro区的比值
-XX:PermSize=12m永久代初始值
-XX:MaxPermSize=64m永久代最大值
-Xss1024k 栈内存大小
-XX:MaxTenuringThreshold=15由年轻代到年老带的GC阀值(迸发收集器下默认=4)
-XX:+UseFastAccessorMethods get,set 方法转成本地代码
1.4垃圾收集器参数配置
响应时间优先(根据CPU数目及应用具体设置,一般需要CPU>4)
-XX:+UseParNewGC
设置新生代多线程串行收集器,可以不设置
-XX:+UseConcMarkSweepGC
设置老年代迸发收集器,
注意:设置了该值,
①-XX:+UseParNewGC可以不用再设置
②-XX:NewRatio设置失效,因为在迸发收集器下,该值被设置为7即:XX:NewRatio=7, 该种情况下,新生代将足够小(与通常相比),便于进行更多次的新生代垃圾回收(Minor GC,采用的复制算法),设置1.5G内存配置时,新生代才192M,这时进行Minor GC平均才30-50ms,是很小的建议保留默认值,如果根据业务,需要设置新生代大小,可以用参数:-Xmn
③-XX:MaxTenuringThreshold=4 这个值也比较合理,建议保留,测试修改为2、3时,老年代会比较快就占用内存很多,一旦发生FULL GC,讲非常耗时
-XX:ParallelGCThreads=8
设置并行收集的线程数
-XX:+UseCMSCompactAtFullCollection
打开对年老代的压缩,可能会影响性能,但可以消除碎片
-XX:CMSFullGCsBeforeCompaction=10
由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行多少次Full GC以后对内存空间进行压缩、整理
-XX:CMSInitiatingOccupancyFraction=75
指示在老年代在使用了n% 的比例后, 启动concurrent collector, 默认值是68
-XX:+UseCMSInitiatingOccupancyOnly
指示只有在老年代在使用了初始化的比例后concurrent collector 启动收集
吞吐率优先(根据CPU数目及应用具体设置,一般需要CPU>4)
-XX:+UseParallelGC
设置新生代并行收集器
-XX:+UseParalledlOldGC
设置老年代并行收集器
-XX:ParallelGCThreads=8
设置并行收集的线程数
-XX:MaxGCPauseMillis=10
置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满