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。
分享到:
相关推荐
对于高并发,可以增加`maxThreads`属性,这是Tomcat可以同时处理的最大线程数。例如,可以设置为`maxThreads="2000"`以应对1000 QPS的需求,但也要考虑到服务器的资源限制,避免过度消耗内存。 2. **配置...
提高 IIS 的并发访问量达到十万的并发 IIS(Internet Information Services)是微软推出的 Web 服务器,性能较之前有很大的提升。但是,IIS 的默认设置并不适合高并发的请求。为了提高 IIS 的并发访问量,达到十万...
【Tomcat并发数优化的方法】 在Java Web应用中,Tomcat作为流行的开源Servlet容器,其性能优化对于提高系统的并发处理能力和稳定性至关重要。以下是一些针对Tomcat并发数优化的策略,主要关注NIO(New I/O)的支持...
当Tomcat运行的应用程序消耗较多内存时(例如:大数据量处理、复杂页面渲染等),或者当部署的应用程序本身就是一个内存密集型应用时,增加Tomcat的内存分配是非常必要的。如果不进行调整,可能会出现以下问题: - ...
在高并发环境下,优化Tomcat的性能至关重要,以确保系统能够处理大量并发请求,提高响应速度和整体效率。本文将详细介绍Tomcat的并发优化方法,主要关注其运行模式的选择和JVM调优。 首先,Tomcat有三种运行模式:...
Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...
指导方法,主要详细描述如何进行一台服务器上执行多个TOMCAT的方法
在本压缩包中,我们包含了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性能优化”这一主题,详细介绍如何通过优化配置提高Tomcat服务器的并发能力,并深入探讨服务器资源(如CPU、内存、硬盘等)对处理能力的影响。 #### 二、理解服务器资源的重要性 在优化Tomcat...
4. **配置更新**:Tomcat9的配置文件可能会有变化,例如`server.xml`,可能增加了新的元素或属性,以适应新的功能需求。 5. **模块化设计**:Tomcat9可能采用了更加模块化的架构,使得开发者可以根据需要选择加载...
2. **EJB轻量级集成**:尽管Tomcat是轻量级应用服务器,但Tomcat6.0开始支持EJB Lite,允许在不使用完整应用服务器的情况下使用部分企业级Java Bean功能。 3. **JNDI增强**:加强了Java Naming and Directory ...
Tomcat是一个轻量级的应用服务器,特别适用于中小规模系统或并发访问用户较少的场景。对于初学者而言,Tomcat可以被视为Apache服务器的一个扩展,虽然在实际运行过程中,Tomcat通常会作为一个独立于Apache的进程来...
总的来说,Tomcat是Java Web开发的重要工具,其易用性、轻量级和灵活性使其成为许多项目的选择。通过深入理解和熟练掌握Tomcat的工作原理和配置,开发者可以更有效地构建和维护高性能的Web应用。
综上所述,这个自编译的jar包提供了一种解决方案,即利用Redis作为session存储,以增强Tomcat8在高并发环境下的session管理能力。用户在使用时,需要配置Tomcat的server.xml文件,将session存储策略改为使用这个jar...
Tomcat是Apache软件基金会Jakarta项目的一部分,以其轻量级、高效和稳定性而广受欢迎。本篇文章将深入探讨Tomcat 7和8之间的差异以及它们各自的特点。 **Tomcat 7** Tomcat 7是Apache Tomcat的一个重要版本,发布于...
例如,可能调整了线程池大小、内存分配或者日志系统,以适应更高的并发请求。 关键信息是“我已将请求参数设置无限大”。在Tomcat服务器中,`maxPostSize`参数默认限制了HTTP POST请求可以携带的数据量。当上传文件...
- Tomcat是一个轻量级的应用服务器,主要负责运行基于Java的Web应用,包括Servlet和JSP。 - 它是Java EE平台的一部分,但仅实现其中的Web层服务,不包含完整的企业级服务,如EJB(Enterprise JavaBeans)。 2. **...
- **开发测试环境**:由于其轻量级的特点,常被用于开发阶段作为快速搭建的测试环境。 - **生产环境部署**:经过适当的配置和优化后,Tomcat也适用于生产环境中的Web应用部署。 通过以上介绍可以看出,从Tomcat 7到...
6. **性能优化**:通过调整“conf/server.xml”中的线程池设置,如最大线程数、空闲超时时间等,可以优化Tomcat的并发处理能力。 7. **连接器(Connector)**:Tomcat支持多种协议的连接器,例如HTTP/1.1、AJP/1.3...