`

Tomcat性能优化之---参数配置

 
阅读更多

转载自:http://liaojuncai.iteye.com/blog/2001621

Tomcat6.18版本:apache-tomcat-6.0.18

Why

每个web客户端请求对于服务器端来说就一个单独的线程,客户端的请求数量增多将会导致线程数就上去了,CPU就忙着跟线程切换。

而NIO则是使用单线程(单个CPU)或者只使用少量的多线程(多CPU)来接受Socket,而由线程池来处理堵塞在pipe或者队列里的请求.这样的话,只要OS可以接受TCP的连接,web服务器就可以处理该请求。大大提高了web服务器的可伸缩性。


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

 大家都听说了在Apache Tomcat6 中支持了Java语言的特性 NIO( New I/O),不管你对NIO的技术是否熟悉,但你肯定能想象的到NIO是一个好东西。的确,使用NIO在服务器端会有更好的性能,加强服务器端对并发处理的性能。  请注意:很抱歉,在tomcat6在默认的配置选项中是没有把NIO功能打开。所以很多正在使用Tomcat6的朋友们本以为能快活的使用上NIO。

不信,你可以试试,从Apache Tomcat 站点下载 的Tomct6 压缩包中 conf/server.xml的 配置文件第69行,内容如下:

 

Xml代码  收藏代码
  1. <Connector port="8080" protocol="HTTP/1.1"   
  2.    connectionTimeout="20000"   
  3.     redirectPort="8443" />  

 

 

进行测试,可以在控制台的启动信息里看见,默认状态下没有被打开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的类型,配置如下

Xml代码  收藏代码
  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

这样才能让你真正体验到Tomcat6下NIO给你的系统带来的快感。

–end–

  2,修改Tomcat 6默认的maxThread

 server.xml配置:

Xml代码  收藏代码
  1. <Connector port="8080"  
  2.         protocol="org.apache.coyote.http11.Http11NioProtocol"  
  3.         executor="tomcatThreadPool"  
  4.         compression="on"  
  5.         compressionMinSize="2048"  
  6.         maxThreads="3000"  
  7.         minSpareThreads="512"  
  8.         maxSpareThreads="2048"  
  9.         enableLookups="false"  
  10.         redirectPort="8443"  
  11.         acceptCount="35000"  
  12.         debug="0"  
  13.         connectionTimeout="40000"  
  14.         disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />  

 

 

 

连接器使用的线程池的名子:executor="tomcatThreadPool"

连接器端口                         :port="8090"

连接器使用的传输方式       :protocol="org.apache.coyote.http11.Http11NioProtocol"

传输时是否支持压缩           :compression="on"

压缩的大小                         :compressionMinSize="2048"

 

       线程池名:           name="tomcatThreadPool"

       线程前缀:           namePrefix="catalina-exec-"

       最大产生线程数:maxThreads="1000"

       最小初始现程数:minSpareThreads="350"

 

 在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:

     minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 

     maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 

     acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100 

     enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false 

     connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

 

 其中和最大连接数相关的参数为maxProcessors和acceptCount。

如果要加大并发连接数,应同时加大这两个参数。

 

      3.设置Tomcat连接器池

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="350" />

在配置文件中添加了如下配置:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="350" />

 

4.修tomcat的JVM参数

大量的并发也意味着大量的服务器资源,所以修改一下tomcat的JVM参数也是必要的错误。

提示: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’

分享到:
评论

相关推荐

    tomcat-redis-session-manager-1.2-tomcat-7-java-7

    6. **性能优化**:通过调整Apache Commons Pool的配置,如最大空闲时间、最大活动对象数等,可以进一步优化连接池的性能。同时,根据实际需求,可以调整Redis的过期策略、复制模式和数据持久化方式,确保session管理...

    tomcat9+tomcat-cluster-redis-session-manager_4.0.zip

    这个版本引入了诸多新特性,包括对Java EE 8的支持,性能优化,以及更好的安全性。"apache-tomcat-9.0.36-windows-x64.zip"这个文件是Windows 64位系统的Tomcat 9.0.36安装包,包含了运行和部署Java Web应用所需的...

    Tomcat性能优化

    【标题】:“Tomcat性能优化”意味着我们正在探讨如何提升Apache Tomcat服务器的运行效率,使其在处理Web应用时能够更快、更稳定地工作。Tomcat是一个开源的Java Servlet容器,广泛用于部署Java Web应用程序。 ...

    tomcat-redis-session-manager实现session共享 配置文件

    2. **性能优化**:可以调整Redis的配置,如缓存策略、过期策略等,以适应高并发场景。 3. **监控与报警**:监控Redis和Tomcat的Session操作,设置报警阈值,以便在出现问题时能及时发现。 通过以上介绍,我们了解...

    tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x

    在这个版本的连接器中,可能会包含一些针对性能优化的改进,新的安全补丁,或者其他功能更新,以增强与Apache HTTPD的协同工作能力。 压缩包内的文件"tomcat-connectors-1.2.40-windows-x86_64-httpd-2.4.x"可能是...

    tomcat性能优化

    总的来说,Tomcat性能优化是一个涉及多个层面的过程,需要结合实际情况,从操作系统、JVM到Tomcat自身配置全面考虑,才能实现最佳的运行效果。同时,持续监控和调整是保持高性能的关键,因为随着应用的发展,优化的...

    tomcat-redis-session-manager-1.2-tomcat-6&7

    5. **测试和优化**:测试session存储和恢复是否正常,根据实际负载调整连接池大小、超时时间等参数。 通过以上介绍,我们可以看到这个压缩包文件提供了一整套解决方案,帮助用户在Tomcat 6和7环境下无缝地将session...

    apache-tomcat-8.5.47-windows-x64.zip

    7. **性能优化** 为了提升性能,可以考虑调整Tomcat的线程池大小、JVM内存设置、开启GZIP压缩等。此外,还可以通过调整JVM的垃圾回收策略和使用数据缓存来提高响应速度。 综上所述,Apache Tomcat 8.5.47在Windows...

    tomcat-connectors-1.2.48-src

    `tomcat-connectors-1.2.48-src`提供了多种性能优化选项,如连接池管理、负载均衡、缓存机制等,以提升整体系统的响应速度和可靠性。 6. **安全性与故障排查** 连接器的源代码提供了深入的洞察力,有助于开发者...

    apache-tomcat-9.0.2-windows-x64

    8. **性能优化**: 对于64位系统,可以调整Tomcat的JVM参数以优化内存分配,例如设置-Xms和-Xmx来控制堆内存大小。此外,还可以通过调整线程池大小、开启NIO或多线程模式来提升性能。 9. **日志与调试**: Tomcat的...

    tomcat-redis-session-manager-2.0.0.zip

    4. **性能优化**: 使用了高效的序列化和反序列化策略,比如Java的`java.io.Serializable`接口,或者更高级的Google Protobuf,以减少数据转换的开销。 5. **故障恢复**: 当Redis服务出现故障时,`tomcat-redis-...

    apache-tomcat-6.0.35和apache-tomcat-6.0.35 src

    - 可以通过修改`conf/server.xml`配置文件来调整端口号、连接器类型、最大并发连接数等参数。 5. **安全与优化**: - 默认情况下,Tomcat的许多端口都是开放的,需要根据实际需求关闭不必要的端口。 - 为提高...

    tomcat性能优化.pdf

    配置优化是Tomcat性能优化的第一步,也是最基础的一步。首先,应该选择合适的Tomcat版本进行部署。当前版本的Tomcat,如Tomcat 9,性能更高且更稳定。部署时,应禁用ajp协议,因为在8.5.51之前的版本默认开启,但...

    Tomcat性能优化.rar

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

    tomcat-connectors-1.2.32-src.tar.gz

    2. 性能调整:可以通过调整AJP连接器的参数,如maxThreads、minSpareThreads等,优化性能。 3. 日志监控:启用Apache和Tomcat的日志功能,以便于定位和解决问题。 4. 错误排查:如果遇到错误,查看Apache的error_log...

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

    1. 参数设置:优化JVM内存分配是提升Tomcat性能的关键。通常需要调整的参数包括`-Xms`(初始堆大小)、`-Xmx`(最大堆大小)、`-XX:NewRatio`(新生代与老年代的比例)、`-XX:SurvivorRatio`(年轻代中Eden区与...

    apache-tomcat-11.0.0-M17-windows-x64.zip

    8. **性能优化**:Tomcat可以通过调整线程池大小、内存分配、连接器设置等方式进行性能优化。例如,增加`maxThreads`参数可以处理更多并发请求。 9. **监控与管理**:通过内置的JMX(Java Management Extensions)...

    apache-tomcat-9.0-windows-x64.zip 内置64位的三个版本尽情使用 吧少年

    此版本引入了许多性能优化和新特性,包括对HTTP/2的支持,更好的HTTPS处理,以及更强大的管理工具。 3. **64位版本**: 64位的Tomcat针对大内存系统进行了优化,可以更好地处理大型应用或高并发场景。相比32位,64位...

    TOMCAT-5.5.X优化配置

    很好的TOMCAT-5.5.X优化配置文档,详细说明了各个的参数设置

    apache-tomcat-7.0.63-windows-x64.zip

    **性能优化** 为了提高性能,你可以调整`conf/server.xml`中的配置参数,比如线程池大小、最大请求队列长度等。同时,也可以通过JVM的调优参数来优化内存分配和垃圾回收。 **总结** `apache-tomcat-7.0.63-windows-...

Global site tag (gtag.js) - Google Analytics