`

Tomcat并发数优化的方法总结

 
阅读更多

web应用的并发提升,除了负载均衡。在小企业中也可以通过一些软件的上的设置来进行一些优化。下面是一些在服务器上修改tomcat参数的优化方法,非常简单实用!(这些方法通过网络整理的)

1,让Tomcat6 中支持Java语言的特性 NIO( New I/O)

引用

使用NIO在服务器端会有更好的性能,加强服务器端对并发处理的性能。 请注意:很抱歉,在tomcat6在默认的配置选项中是没有把NIO功能打开。所以很多正在使用Tomcat6的朋友们本以为能快活的使用上NIO
NIO则是使用单线程(单个CPU)或者只使用少量的多线程(CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受TCP的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。


可以在控制台的启动信息里看见,默认状态下没有被打开nio配置,启动时的信息,如下:
2010-2-1 12:59:40 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2010-2-1 12:59:40 org.apache.catalina.startup.Catalina load

修改成支持NIO的类型,配置如下:

Java代码

1 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

2 connectionTimeout="20000"

3 redirectPort="8443" />



进行测试,被打开nio配置,启动时的信息,如下:
2010-2-1 13:01:01 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
信息: Using a shared selector for servlet write/read
2010-2-1 13:01:01 org.apache.coyote.http11.Http11NioProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
这样才能让你真正体验到Tomcat6NIO给你的系统带来的快感。

2,修改Tomcat 6默认的maxThread

引用

打开server.xml可以看到如下配置:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
官方文档默认说支持200但似乎超过40就不行了


修改方法 :

Java代码

4 <Connector port="8080" protocol="HTTP/1.1"

5 connectionTimeout="20000"

6 redirectPort="8443" maxThreads="150"/>

引用


tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:truefalse。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

其中和最大连接数相关的参数为maxProcessorsacceptCount。如果要加大并发连接数,应同时加大这两个参数。



3,大量的并发也意味着大量的服务器资源,所以修改一下tomcatJVM参数也是必要的

错误提示:java.lang.OutOfMemoryError: Java heap space

引用

Windows环境下修改%TOMCAT_HOME%\bin\catalina.bat文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m

Linux环境下修改%TOMCAT_HOME%\bin\catalina.sh文件,在文件开头增加如下设置:JAVA_OPTS=-Xms256m -Xmx512m


引用


JVM设置
堆的尺寸
-Xmssize in bytes
设定Java堆的初始尺寸,缺省尺寸是2097152 (2MB)。这个值必须是1024个字节(1KB)的倍数,且比它大。(-server选项把缺省尺寸增加到32M。)
-Xmnsize in bytes
Eden对象设定初始Java堆的大小,缺省值为640K。(-server选项把缺省尺寸增加到2M)
-Xmxsize in bytes
设定Java堆的最大尺寸,缺省值为64M,(-server选项把缺省尺寸增加到128M。) 最大的堆尺寸达到将近2GB2048MB)。

请注意:很多垃圾收集器的选项依赖于堆大小的设定。请在微调垃圾收集器使用内存空间的方式之前,确认是否已经正确设定了堆的尺寸。

垃圾收集:内存的使用
-XX:MinHeapFreeRatio=percentage as a whole number
修改垃圾回收之后堆中可用内存的最小百分比,缺省值是40。如果垃圾回收后至少还有40%的堆内存没有被释放,则系统将增加堆的尺寸。
-XX:MaxHeapFreeRatio=percentage as a whole number
改变垃圾回收之后和堆内存缩小之前可用堆内存的最大百分比,缺省值为70。这意味着如果在垃圾回收之后还有大于70%的堆内存,则系统就会减少堆的尺寸。
-XX:NewSize=size in bytes
为已分配内存的对象中的Eden代设置缺省的内存尺寸。它的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:MaxNewSize=size in bytes
允许您改变初期对象空间的上限,新建对象所需的内存就是从这个空间中分配来的,这个选项的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:NewRatio=value
改变新旧空间的尺寸比例,这个比例的缺省值是8,意思是新空间的尺寸是旧空间的1/8
-XX:SurvivorRatio=number
改变Eden对象空间和残存空间的尺寸比例,这个比例的缺省值是10,意思是Eden对象空间的尺寸比残存空间大survivorRatio+2倍。
-XX:TargetSurvivorRatio=percentage
设定您所期望的空间提取后被使用的残存空间的百分比,缺省值是50
-XX:MaxPermSize=size in MB
长久代(permanent generation)的尺寸,缺省值为3232MB)。


有关JVM的参数设置可参考这个地址:http://daichangfu.iteye.com/blog/893844


web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows2000个左右,Linux1000个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令

<!--EndFragment-->
分享到:
评论
2 楼 sauzny 2012-10-16  
usiboy 写道
NIO确实可以提高Socket通讯上的效率,但对于JVM的调优,只能作为参考,这个需要参考硬件的参数,尽可能的不去动他。

   你是第一个回复我的!!!
1 楼 usiboy 2012-10-16  
NIO确实可以提高Socket通讯上的效率,但对于JVM的调优,只能作为参考,这个需要参考硬件的参数,尽可能的不去动他。

相关推荐

    Tomcat并发数优化的方法总结.pdf

    【Tomcat并发数优化的方法】 在Java Web应用中,Tomcat作为流行的开源Servlet容器,其性能优化对于提高系统的并发处理能力和稳定性至关重要。以下是一些针对Tomcat并发数优化的策略,主要关注NIO(New I/O)的支持...

    tomcat 启动优化和并发并发优化配置.rar

    二、Tomcat并发优化配置 1. **Connector配置**:调整`Connector`的并发参数,如`maxThreads`定义最大线程数,`minSpareThreads`设置最小空闲线程,确保在高并发下有足够的处理能力。`acceptCount`设定等待队列长度...

    Tomcat7性能优化

    ### Tomcat7性能优化策略详解 #### 一、引言 在现代Web应用开发中,Tomcat作为一款广泛使用的开源...希望这些方法能够帮助开发者们更好地理解和掌握Tomcat性能优化的关键技术,从而为用户提供更加稳定高效的Web服务。

    tomcat7 优化 性能调优

    然而,在面对高并发访问场景时,如何有效地优化Tomcat以提高其性能变得至关重要。本文将围绕“Tomcat7优化与性能调优”的主题,深入探讨优化策略,包括但不限于配置调整、启动模式选择、线程池设置、JVM参数调整等...

    Tomcat性能优化.rar

    总结,Tomcat性能优化涉及JVM、Tomcat配置、Web应用、代码质量以及监控等多个层面,需要结合实际业务场景进行综合考虑。只有全面了解并掌握这些优化策略,才能使Tomcat在运行大型复杂应用时保持高效、稳定。

    tomcat7.0性能优化-挑战极限精简版

    总结,Tomcat7.0性能优化涉及多个层面,从JVM配置到线程池、连接器,再到Web应用和数据库连接池,每一步都需要根据实际需求进行细致调整。同时,定期进行性能测试和监控,以便及时发现问题并持续优化。通过以上策略...

    Tomcat性能调优实战总结

    【Tomcat性能调优实战总结】 ...通过上述方法,我们可以逐步提升Tomcat的服务性能,使其在高并发、大数据量的环境中运行更加稳定高效。在实践中,每个项目的具体需求不同,需要结合实际情况进行有针对性的调优工作。

    Tomcat7优化

    总结,Tomcat7的优化涉及多个层面,包括JVM参数、线程池、连接器、部署策略、日志管理和安全配置。每项优化都需要根据实际应用负载和需求进行细致调整,才能达到最佳效果。只有深入了解Tomcat的工作原理,并结合实践...

    Tomcat性能优化.pdf

    ### Tomcat性能优化详解 #### 一、引言 在软件开发过程中,性能测试与分析是一个既复杂又关键的...实践中,应根据实际应用场景和需求,综合考虑各种因素,灵活运用上述提到的方法和技术,以达到最佳的性能优化效果。

    tomcat优化总结

    ### Tomcat优化总结 在IT领域中,Apache Tomcat作为一款免费开源的Servlet容器,被广泛应用于Java Web项目的开发与部署。随着应用系统的复杂度增加及用户量的增长,Tomcat性能优化成为确保服务稳定性和响应速度的...

    Tomcat部署及优化

    总结,Tomcat部署及优化是一个涉及多方面的工作,包括JDK的配置、Tomcat的启动与部署、JVM参数调整、服务器配置优化以及应用本身的性能提升。每个环节都需要细致考虑,以确保Tomcat能够高效、稳定地运行Web应用程序...

    TOMCAT优化

    本文档旨在深入探讨Tomcat的性能调优原理及实践方法,帮助技术人员更好地理解和实施相关的优化措施。 #### 二、Tomcat性能调优概览 Tomcat的性能调优主要包括两大类:外部环境调优与自身调优。外部环境调优关注于...

    调整Tomcat的并发线程

    在调整Tomcat的并发线程数以提高服务器...总结来说,调整Tomcat的并发线程数是一个涉及多个配置项的综合过程,必须根据服务器的实际性能和资源状况来适当调整,以达到提升并发数的目的,同时也要保证系统的稳定运行。

    redis集群jvm调优实战MySQL5.6性能优化&Tomcat7优化.rar

    Tomcat的优化主要集中在减少响应时间、提高并发处理能力和节省资源上。文档可能讲解了如何调整连接器配置,如最大连接数、超时设置,以及线程池的管理。另外,可能还会介绍如何通过部署多实例、负载均衡来提高整体...

    Tomcat 安全配置与性能优化

    `maxThreads` 参数控制Tomcat能够同时处理的最大并发连接数。一般来说,不应将其设置得过高,以免超出服务器的处理能力。如果网站访问量特别大,可以考虑使用多个Tomcat实例并进行负载均衡。 - 对于CPU密集型...

    tomcat优化方案

    ### Tomcat优化方案详解 #### 一、总体优化思路 为了确保Tomcat能够高效稳定地运行,我们需要从多个维度进行全面的优化。这不仅包括Tomcat本身的配置调整,还包括对操作系统、网络环境、JDK版本的选择等多个方面。...

    关于Tomcat服务器优化

    本文将详细介绍如何对刚搭建好的Tomcat服务器进行简单的优化,包括启动内存优化以及线程和连接数的配置优化等方面。 #### 二、启动内存优化 启动内存优化是提高Tomcat服务器性能的重要手段之一。合理的内存设置...

    liunx tomcat优化

    总结起来,Linux下的Tomcat优化涉及多个层面,包括JVM参数配置、系统调优、线程池管理和日志管理。通过精细调整这些方面,可以显著提升Tomcat的性能和稳定性,使其更好地服务于各种复杂的Web应用需求。

    Tomcat内存优化

    ### Tomcat内存优化详解 #### 一、引言 在Java Web应用开发中,Apache Tomcat作为一款轻量级的应用服务器被广泛使用。然而,在实际部署和运行过程中,经常会遇到性能瓶颈,其中最常见的问题之一就是内存溢出异常,...

    tomcat GC 优化配置

    ### Tomcat GC 优化配置详解 #### 一、概述 在服务器端应用中,Java虚拟机(JVM)的性能优化至关重要,特别是对于像Tomcat这样的应用服务器而言,其性能直接影响到系统的响应速度和资源利用率。本文将详细介绍如何...

Global site tag (gtag.js) - Google Analytics