`
no_bao
  • 浏览: 315841 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Tomcat并发数优化的方法总结

    博客分类:
  • j2ee
阅读更多

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 
这样才能让你真正体验到Tomcat6下NIO给你的系统带来的快感。 

2,修改Tomcat 6默认的maxThread 

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


修改方法 : 

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


 

引用

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

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



3,大量的并发也意味着大量的服务器资源,所以修改一下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’



 

引用

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。) 最大的堆尺寸达到将近2GB(2048MB)。 

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

垃圾收集:内存的使用 
-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)的尺寸,缺省值为32(32MB)。 


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


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

分享到:
评论

相关推荐

    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优化总结

    ### 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