Tomcat6优化配置
2016-06-10 09:06
387 查看
在WEB的大型应用中,对于Tomcat的配置优化显得尤其重要,它会造成非常严重的并发危机。因此它是除了WEB服务器以及数据库服务器之外,也同时需要大量的时间进行实地的测试与优化。一、修改tomcat配置文件<Connector port="80" protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="512"minSpareThreads="100"maxSpareThreads="200" enableLookups="false"redirectPort="8443"acceptCount="500" connectionTimeout="30000"disableUploadTimeout="true"/>参数分析: (1)、maxHttpHeaderSize=”8192” 此选项用于配置:来自于客户端请求的Request和Response的HTTP header的最大长度,以字节计算。如果不设置,该属性为4096(4K)。 (2)、maxThreads="512" Connector创建的请求处理线程的最大值,它决定了能够同时处理并发请求的最大值。如果不指定,该属性值为200。Tomcat的线程数量太多会导致切换过多,性能下降严重。这个数量应该是你单个机器的承载能力,压力测试下得出的结果。不可任意加大。一般情况下,256-512个已经非常高的数值了。 (3)、minSpareThreads="100" tomcat初始化时创建的线程数,即最小工作线程数目。 (4)、maxSpareThreads="300" tomcat所允许的最大线程数,一旦创建的线程超过这个数,Tomcat就将关闭不 再需要的Socket线程。 (5)、enableLookups="false" 使用允许DNS查询,通常情况下设置为false。如果为true则tomcat会损耗一部分系统性能。 (6)、redirectPort="8443" 这里系统默认的,它指定转发端口,如果当前只支持non-SSL请求,在需要安全 通信的场所,将把客户请求转发至SSL的redirectPort端口。 (7)、acceptCount=“200” 当所有请求处理线程都被占用时,允许接收请求队列的最大长度。当队列已满时, 任何收到的请求都将被拒绝。缺省值为10。 (8)、connectionTimeout="50000" Connector接收连接后,等待提供请求URI的时间,缺省值为60000(60秒)。 (9)、disableUploadTimeout="true" 该标志位表明当执行servlet时,是否允许servlet容器使用一个不同的、更长的 连接超时。启用该标志位将导致在上传数据时,要么使用更长的时间完成上传,要么 出现更长的超时。如果不指定,该属性为“false”。 (10)、有时不光要优化tomcat,同时还需要更改Linux的一些系统参数。如果WEB服务器进行压力测试时报socket不足,则些可以对/etc/security/limits.conf进行相应修改: * soft nofile 57766 * hard nofile 65535 二、优化tomcat启动的初始内存设置($TOMCAT_HOME/bin/catalina.sh) JAVA_OPTS="-server -Xms2048M -Xmx2048M -Xss128k -XX:+AggressiveOpts -XX:+UseParallelGC -XX:+UseBiasedLocking"参数详解: (1)、-Xms2048M Java虚拟机初始化时使用的内存大小,为了减少tomcat频繁的申请内存,此参数 应该和Xmx设置的参数一样大。 (2)、-Xmx2048M JAVA虚拟机可以使用的最大内存,此参数的最大设置不允许超过物理内存的90%。 (3)、-XX:+AggressiveOpts 加快编译 (4)、-Xss128k 设置tomcat每增加一个线程(Thread)就会立即消耗128K内存,最佳值应该是128, 默认值是512K。见意256K大小,这个对性能影响较大,需要多次测试。减少这个值可 以增加一个进程内的线程数量。 (5)、-XX:+UseParallelGC 一些测试表明当非64位系统,并且非高性能服务器时,这个选项会造成垃圾回收 变慢。(此选项决定对垃圾回收是否采用多线程) (6)、-XX:+UseBiasedLocking" 非竞争性的同步选项,锁机制的性能改善。 (7)、-XX:PermSize=256m 最小堆大小,一般把内存不足时就是把这个空间不足。默认为物理内存的1/4。 (8)、-XX:+DisableExplicitGC禁止System.gc(),免得程序员误调用gc方法影响性能。 下面给出见意设置:JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking" <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" minProcessors="100" maxProcessors="5000" maxThreads="5000" minSpareThreads="1000" maxSpareThreads="4000" enableLookups="false" acceptCount="3500" disableUploadTimeout="true" connectionTimeout="20000" debug="0" redirectPort="8443" /> maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭(应该有个超时时间吧,超时后关闭)不再需要的socket线程;所以maxThreads决定了tomcat的最大线程阀值,需要设置的大一些
相关文章推荐
- java-模拟tomcat服务器
- i-jetty环境搭配与编译
- 实现单Tomcat多Server配置
- 生产环境下的Tomcat配置
- Linux部署Tomcat服务器
- jenkins------结合maven将svn项目自动部署到tomcat下
- 如何搞定tomcat这只喵~
- tomcat在opensuse下开机自启失败的原因分析及解决方法
- jsp项目中更改tomcat的默认index.jsp访问路径的方法
- Tomcat 多端口 多应用
- tomcat 5.0 + apache 2.0 完全安装步骤详解
- Tomcat安全设置 win2003 下tomcat权限限制
- Jsp和PHP共用80端口整合Apache和Tomcat(访问时无需加端口号)
- Tomcat服务器 安全设置第1/3页
- tomcat 6.0.20在一个机器上安装多个服务的方法
- Tomcat 5.5 数据库连接池配置
- Tomcat内存溢出分析及解决方法
- apache tomcat 一个网站多域名的实现方法
- Tomcat无法加载css和js等静态资源文件的解决思路