`

增加tomcat并发量

 
阅读更多
tomcat默认的连接是线程阻塞的,即protocol配置为"HTTP/1.1"。那么tomcat的最大连接数就受maxThreads和account的限制,

maxThreads是最大的线程数,account是线程等待数,当连接数量达到maxThreads时,就把多余的连接放入account中。当连接数大于maxThreads+account时,连接被拒绝。maxThreads的默认值是200,account的默认值是100。


通过修改maxThreads和account的值可以增加tomcat的最大连接数。但是这个数值还受限于系统的最大句柄数。要是项目需要的并发量超过了系统的最大句柄数,那就只能修改系统的最大句柄数。Linux的默认最大句柄数是1024.

tomcat的线程连接还可以设置为线程非阻塞,即 protocol="org.apache.coyote.http11.Http11NioProtocol" 

那么tomcat的最大连接数就是系统的最大句柄数。当配置为Nio时,不要加上maxThreads account等属性,否则会报错!


http://hi.baidu.com/latjo/blog/item/f939e925a76c88064d088d63.html
Tomcat从5.5版本开始,支持以下四种Connector的配置分别为:



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

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"

               redirectPort="8443"/>

<Connector executor="tomcatThreadPool"

               port="8081" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

<Connector executor="tomcatThreadPool"

               port="8081" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />



我们姑且把上面四种Connector按照顺序命名为 NIO, HTTP, POOL, NIOP



为了不让其他因素影响测试结果,我们只对一个很简单的jsp页面进行测试,这个页面仅仅是输出一个Hello World。假设地址是 http://tomcat1/test.jsp



我们依次对四种Connector进行测试,测试的客户端在另外一台机器上用ab命令来完成,测试命令为: ab -c 900 -n 2000 http://tomcat1/test.jsp,最终的测试结果如下表所示(单位:平均每秒处理的请求数):



NIO HTTP POOL NIOP

281 65 208 365

666 66 110 398

692 65 66 263

256 63 94 459

440 67 145 363

由这五组数据不难看出,HTTP的性能是很稳定,但是也是最差的,而这种方式就是Tomcat的默认配置。NIO方式波动很大,但没有低于280 的,NIOP是在NIO的基础上加入线程池,可能是程序处理更复杂了,因此性能不见得比NIO强;而POOL方式则波动很大,测试期间和HTTP方式一 样,不时有停滞。



由于linux的内核默认限制了最大打开文件数目是1024,因此此次并发数控制在900。
分享到:
评论

相关推荐

    tomcat 1000/s 并发配置

    对于高并发,可以增加`maxThreads`属性,这是Tomcat可以同时处理的最大线程数。例如,可以设置为`maxThreads="2000"`以应对1000 QPS的需求,但也要考虑到服务器的资源限制,避免过度消耗内存。 2. **配置...

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

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

    提高IIS的并发访问量,达到十万的并发

    提高 IIS 的并发访问量达到十万的并发 IIS(Internet Information Services)是微软推出的 Web 服务器,性能较之前有很大的提升。但是,IIS 的默认设置并不适合高并发的请求。为了提高 IIS 的并发访问量,达到十万...

    增加tomcat内存

    当Tomcat运行的应用程序消耗较多内存时(例如:大数据量处理、复杂页面渲染等),或者当部署的应用程序本身就是一个内存密集型应用时,增加Tomcat的内存分配是非常必要的。如果不进行调整,可能会出现以下问题: - ...

    Tomcat并发优化方法介绍

    在高并发环境下,优化Tomcat的性能至关重要,以确保系统能够处理大量并发请求,提高响应速度和整体效率。本文将详细介绍Tomcat的并发优化方法,主要关注其运行模式的选择和JVM调优。 首先,Tomcat有三种运行模式:...

    tomcat7tomcat8tomcat9

    Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...

    一台机器上跑2个不同的tomcat

    指导方法,主要详细描述如何进行一台服务器上执行多个TOMCAT的方法

    Tomcat7及Tomcat8

    在本压缩包中,我们包含了Tomcat的两个主要版本:Tomcat 7和Tomcat 8。 **一、Tomcat 7** Tomcat 7是Apache Tomcat服务器的一个重要版本,它支持Java EE 6规范,包括Servlet 3.0、JSP 2.2和EL 2.2。以下是Tomcat 7...

    Tomcat7性能优化

    本文将围绕“Tomcat7性能优化”这一主题,详细介绍如何通过优化配置提高Tomcat服务器的并发能力,并深入探讨服务器资源(如CPU、内存、硬盘等)对处理能力的影响。 #### 二、理解服务器资源的重要性 在优化Tomcat...

    Tomcat9 64位

    4. **配置更新**:Tomcat9的配置文件可能会有变化,例如`server.xml`,可能增加了新的元素或属性,以适应新的功能需求。 5. **模块化设计**:Tomcat9可能采用了更加模块化的架构,使得开发者可以根据需要选择加载...

    Tomcat5.0和Tomcat6.0

    2. **EJB轻量级集成**:尽管Tomcat是轻量级应用服务器,但Tomcat6.0开始支持EJB Lite,允许在不使用完整应用服务器的情况下使用部分企业级Java Bean功能。 3. **JNDI增强**:加强了Java Naming and Directory ...

    tomcat压缩包

    总的来说,Tomcat是Java Web开发的重要工具,其易用性、轻量级和灵活性使其成为许多项目的选择。通过深入理解和熟练掌握Tomcat的工作原理和配置,开发者可以更有效地构建和维护高性能的Web应用。

    Tomcat8亲测可用 tomcat-redis-session-manager的jar包

    综上所述,这个自编译的jar包提供了一种解决方案,即利用Redis作为session存储,以增强Tomcat8在高并发环境下的session管理能力。用户在使用时,需要配置Tomcat的server.xml文件,将session存储策略改为使用这个jar...

    tomcat7和8

    Tomcat是Apache软件基金会Jakarta项目的一部分,以其轻量级、高效和稳定性而广受欢迎。本篇文章将深入探讨Tomcat 7和8之间的差异以及它们各自的特点。 **Tomcat 7** Tomcat 7是Apache Tomcat的一个重要版本,发布于...

    tomcat-8.0.47,优化过后的tomcat

    例如,可能调整了线程池大小、内存分配或者日志系统,以适应更高的并发请求。 关键信息是“我已将请求参数设置无限大”。在Tomcat服务器中,`maxPostSize`参数默认限制了HTTP POST请求可以携带的数据量。当上传文件...

    apache-tomcat-7.0.96

    - Tomcat是一个轻量级的应用服务器,主要负责运行基于Java的Web应用,包括Servlet和JSP。 - 它是Java EE平台的一部分,但仅实现其中的Web层服务,不包含完整的企业级服务,如EJB(Enterprise JavaBeans)。 2. **...

    windows安装版-tomcat8.5.57.zip

    6. **性能优化**:通过调整“conf/server.xml”中的线程池设置,如最大线程数、空闲超时时间等,可以优化Tomcat的并发处理能力。 7. **连接器(Connector)**:Tomcat支持多种协议的连接器,例如HTTP/1.1、AJP/1.3...

    基于tomcat的连接数与线程池详解

    连接数决定了Tomcat可以接受多少并发连接,而线程池中的线程数则影响到Tomcat处理请求的吞吐量。线程池由Acceptor和Worker两部分组成,Acceptor负责接收连接,而Worker负责处理这些连接上的请求。在BIO模式下,如果...

    各种版本tomcat压缩包

    Tomcat 7增加了许多新功能,如异步处理能力、改进的NIO连接器、支持更多的JMX管理MBeans等。这个版本在性能和稳定性上都有所提升,适合中小型企业应用。 3. **Tomcat 8**: 于2013年推出,基于Servlet 3.1、JSP 2.3...

Global site tag (gtag.js) - Google Analytics