Tomcat6优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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会自动调整年轻代大小,以满

相关文档
最新文档