`
dengqsintyt
  • 浏览: 288049 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

tomcat并发优化配置

 
阅读更多

        在web应用开发中,提升系统性能和并发,除了负载均衡之外,还有就是通过调整参数来优化,以tomcat为例,其他web工具大同小异。

 

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

          NIO俗称“非阻塞通讯”,单从名字上看,就给人一种“快”的感觉。

         使用NIO在服务器端会有更好的性能,加强服务器端对并发处理的性能。  请注意:很抱歉,在tomcat6在默认的配置选项中是没有把NIO功能打开。所以很多正在使用Tomcat6的朋友们本以为能快活的使用上NIO。 

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

          修改配置如下:文件为server.xml

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"  
               connectionTimeout="20000"  
               redirectPort="8443" />

         重启之后,进行测试,被打开nio配置,启动时的信息,如下:    

2014-2-1 13:01:01 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector 
信息: Using a shared selector for servlet write/read 
2014-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就不行了

   修改方法 :     

<Connector port="8080" protocol="HTTP/1.1"   
               connectionTimeout="20000"   
               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)。

   

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

               

分享到:
评论

相关推荐

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

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

    tomcat 1000/s 并发配置

    tomcat 高并发 1000每秒 服务器优化 高性能 tomcat 高并发 1000每秒 服务器优化 高性能

    【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!

    Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,性能非常...

    Tomcat+Mysql高并发配置优化讲解

    1.Tomcat优化配置 (1)更改Tomcat的catalina.bat 将java变成server模式,增大jvm的内存,在文件开始位置增加 setJAVA_OPTS=-server -Xms1024m -Xmx2048m -Xss512K -XX:PermSize=128m-XX:MaxPermSize=256m ...

    RHEL7.0下的TOMCAT安装、配置及优化1.02.docx

    RHEL7.0下的TOMCAT安装、配置及优化 一、安装前准备 3 二、JDK安装 2.1、建立tomcat用户 2.2、将JDK安装文件上传到服务器 2.3、安装JDK 2.4、配置JDK环境变量 2.5、测试是否正确安装 三、Tomcat安装及配置 ...

    Tomcat性能优化配置方案

    1.操作系统调优; 2.Java虚拟机调优; 3.Apache集成Tomcat; 4.【适用场景】 大量使用静态页面的应用系统; 5.【适用场景】 并发用户量及在线使用用户数量比较高的系统

    优化Tomcat配置(内存、并发、缓存等方面)方法详解

    Tomcat有很多方面,我从内存、并发、缓存等方面介绍优化方法。 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。 JAVA_OPTS...

    tomcat性能优化

    通过优化tomcat提高网站的并发能力。 2.服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。 3.优化配置

    tomcat优化配置1

    2.查看配置是否生效 1.tomcat 连接相关参数 2.调整连接器 connector 的并发处理能力

    TOMCAT 配置及性能优化

    包括Tomcat内存参数的管理设置、JDK、虚拟目录、连接数相关设置

    tomcat 优化配置

    快速教你怎么来优化tomcat的性能,和支持的并发用户数量.

    tomcat7优化

    通过优化tomcat提高网站的并发能力。通过配置各种参数来优化tomcat

    apr库(tomcat优化)

    包含以上是个包,只要应用于LINUX下,用于TOMCAT优化apr连接器使用的 说明下关于TOMCAT调优一种建议 1 Connector介绍  1.1 Connector的种类  Tomcat源码中与connector相关的类位于org.apache.coyote包中,Connector...

    Tomcat6_优化_方案

    但实际上每秒处理的请求数量(每秒并发)和机器配置有关. 9.1 minSpareThreads 和 maxSpareThreads 是最小最大空闲线程,设置为50-200之间即可,没多少意义,除非你是开发机,有其他程序在抢资源. 10. compression=...

    性能调优 海量并发 系统架构

    Jboss的优化配置 Memcached分布式缓存 Nginx+Tomcat 动静分离 Nginx+tomcat集群Memcached+Session复制 高性能高并发服务器架构 基于nginx的tomcat负载均衡和集群 实现多服务器负载均衡 系统性能优化 数据库 Nginx+...

    Tomcat实战-调优方案.docx

    Tomcat的默认配置,性能并不是最优的,我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为...所以不到万不得已不会采用这种方式,一般公司会采取下面这种通过优化配置,来提升Tomcat性能的方式

    apr库(tomcat优化) for native 20

    包含以上是个包,只要应用于LINUX下,用于TOMCAT优化apr连接器使用的 说明下关于TOMCAT调优一种建议 1 Connector介绍  1.1 Connector的种类  Tomcat源码中与connector相关的类位于org.apache.coyote包中,...

    【spring-boot-seckill分布式秒杀系统 v1.0】从0到1构建的java秒杀系统源码+安装说明

    spring-boot-seckill分布式秒杀系统是一个用SpringBoot开发的从0到1构建的分布式秒杀系统,项目案例基本成型,逐步完善中。...3、应用服务优化:Nginx最佳配置、Tomcat连接池优化、数据库配置优化、数据库连接池优化。

Global site tag (gtag.js) - Google Analytics