Chinaunix首页 | 论坛 | 博客
  • 博客访问: 391504
  • 博文数量: 58
  • 博客积分: 2941
  • 博客等级: 少校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-21 11:37
文章分类

全部博文(58)

文章存档

2015年(1)

2014年(1)

2012年(1)

2011年(19)

2009年(1)

2008年(1)

2007年(11)

2006年(10)

2005年(13)

分类: LINUX

2011-02-12 17:36:04

Tomcat 连接器常用选项与优化

以下参数配置是从多年TOMCAT使用经验中得到的。

 

port TOMCAT的服务端口,通常TOMCAT默认服务端口为8080

 

maxHttpHeaderSize: 请求和响应HTTP数据头的最大尺度,单位:字节;    默认为4k。通常优化到8K

 

tcpNoDelay: 如果设成true,将会被设置在服务器SOCKET上,大多情况下可以提升性能;默认为“true.

 

maxThreads: 连接器能创建的最大程序线程请求数,默认为200个。该参数需要根据压力测试结果来调优。

 

minSpareThreads: 连接器初始化启动后创建的最小程序线程请求数,默认为4。一般调优到25

 

maxSpareThreads: 允许最大的未使用程序线程请求保留数,默认为50。一般调优到75

 

enableLookups: 该参数默认开启true,能够得到远程客户端的真实主机名,这个过程比较影响系统性能。因此,如果没有特别应用需要一般都使用false值关闭掉。

 

redirectPort: 默认端口为8443SSL协议传输请求都会被连接器自动转到该端口处理。

 

acceptCount:允许等待队列长度大小,当所有线程被占用时,连接器会把后续请求放入等待           队列,如果值为800时,队列中只允许800个请求等待,如果实际请求数已经超过该队列长度,连接器将拒绝对后面的请求进行处理。      

 

connectionTimeout: 由于HTTP协议客户端连接到服务端,如果请求在一定时间内不被处理,服务器端就会释放它。单位,毫秒。默认60000(60)。一般调优到20000(20)

 

maxKeepAliveRequests: 一次连接可以进行的HTTP请求数。其默认值为100。设置为0可以支持一次连接中进行无限次HTTP请求。该处需要根据实际业务需求进行调整。

 

disableUploadTimeout:   禁用上传超时设置。默认true

 

URIEncoding: 指定工程应用的字符编码,默认为ISO-8859-1,此处根据实际工程需求调整。

 

useBodyEncodingForURI: 是否让 QueryString POST BODY 用相同的字节编码,默认是false

 

更详细的官方解释:

 

 

JAVA 虚拟机优化配置

 

$JAVA_HOME/bin/catalina.sh 脚本的“#!/bin/sh”行下,加入下列参数行:

 

 

JAVA_OPTS=’-server –XMS1g –Xmx1g –Xmn800m –Xss128k –XX:+UseParallelGC –XX:ParallelGCThreads=4 –XX:PermSize=64m –XX:MaxPermSize=128m –XX:MaxTenuringThreshold=3 –XX:SurvivorRatio=4 –Xloggc:/root/tomcatlog/gc.log’

 

这一块包括设置JAVA堆的大小、垃圾回收机制、垃圾回收日志信息。

 

以下是各参数详细配置介绍:

 

-Xms1g设置JVM初始内存为1g

-Xmx1g设置JVM最大可用内存为1g

-Xmn800设置年轻代大小为800整个堆大小=年轻代大小 + 年老代大小 + 持久代大小持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8

-Xss128k设置每个线程的堆栈大小。

-XX:+UseParallelGC选择垃圾收集器为并行收集器。

-XX:ParallelGCThreads=4配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。

-XX:PermSize=64m:设置持久代大小为64m

-XX:MaxPermSize=128m:设置持久代最大大小为128m

-XX:MaxTenuringThreshold=3设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象在年轻代的存活时间增加在年轻代即被回收的概论。

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值,如果是4则是14

–Xloggc:/root/tomcatlog/gc.log’: 垃圾回收统计信息.

 

 

 

 

更详细的官方解释:

 

 

 

 

 

 

 

 

·  常见配置汇总

  1. 堆设置
    • -Xms:初始堆大小
    • -Xmx:最大堆大小
    • -XX:NewSize=n:设置年轻代大小
    • -XX:NewRatio=n:设置年轻代和年老代的比值。如:3,表示年轻代与年老代比值为13,年轻代占整个年轻代年老代和的1/4
    • -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示EdenSurvivor=32,一个Survivor区占整个年轻代的1/5
    • -XX:MaxPermSize=n:设置持久代大小
  2. 收集器设置
    • -XX:+UseSerialGC:设置串行收集器
    • -XX:+UseParallelGC:设置并行收集器
    • -XX:+UseParalledlOldGC:设置并行年老代收集器
    • -XX:+UseConcMarkSweepGC:设置并发收集器
  3. 垃圾回收统计信息
    • -XX:+PrintGC
    • -XX:+PrintGCDetails
    • -XX:+PrintGCTimeStamps
    • -Xloggc:filename
  4. 并行收集器设置
    • -XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
    • -XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
    • -XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
  5. 并发收集器设置
    • -XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
    • -XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。

 

 

阅读(2031) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~