增加tomcat并发量

聊下并发和Tomcat线程数(错误更正) 本文前半部分结论存在严重错误,请看最后2015-1-20更新部分。   最近一直在解决线上一个问题,表现是: Tomcat每到凌晨会有一个高峰,峰值的并发达到了3000以上,最后的结果是Tomcat线程池满了,日志看很多请求超过了1s。 服务器性能很好,Tomcat版本是7.0.54,配置如下: <Executor name="tomcatThreadPool" na... 阅读详情
之前在做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并发量详解 tomcat并发量详解 tomcat并发连接数详解 立即下载

相关推荐

AirSim中图像API的应用

解析Airsim图像获取保存的api

fegxg的博客 1607

tomcat 的并发能力分析

tomcat 的并发能力分析

墨鸦的博客 1万+

brother的PT-9800PCN标签打印机二次开发

本来想通过esc/p指令打印标签,但是无奈能找到的资料太少,而且打电话给客服,也没有sample可以提供参考,后来客服说使用template功能的话,打印很方便。于是下载手册学习了一下, 先下载P-touch Editor软件,制作标签模板。 制作的模板就是普通的标签,不需要连接数据库之类的,模板里有3个object,分别是文本1,文本2,条形码3。这个很关键,后面的代码传送数据,就是按这...

3563

Tomcat支持多少并发

Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的。更好的硬件,更多的处理器都会使Tomcat支持更多的并发。 Tomcat默认的HTTP实现是采用阻塞式的Socket通信,每个请求都需要创建一个线程处理,当一个进程有500个线程在跑的话,那性能已经是很低很低了。 Tomcat 默认配置的最大请求数是150,也就是说同时支...

m0_37501154的博客 5791

Windows 10下用VS2022编译AFSIM 2.9.0的完整避坑指南

本文提供了在Windows 10系统下,使用Visual Studio 2022编译AFSIM 2.9.0仿真框架的详细指南。文章系统梳理了从环境准备、CMake配置、编译链接到安装打包的全流程,并重点针对编译过程中常见的文件编码、命名空间冲突等高频错误提供了具体解决方案,旨在帮助开发者高效避坑,顺利完成AFSIM在Windows平台上的构建。

weixin_28839549的博客 552

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计

define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK);

zhusl6688的博客 406

tomcat设置线程数

查看Tomcat线程数 1、Tomcat默认线程数200 2、修改server.xml文件,增加maxThreads、minSpareThreads、maxSpareThreads、acceptCount 3、参数解释 maxThreads=“1000” 最大并发数 minSpareThreads=“100”///初始化时创建的线程数 maxSpareThreads=“500”///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 acceptCount=“700”// 指定当所

segegefe的博客 6581

ShardingSphere 5.3 系列Spring 配置升级指南 | Spring Cloud 47

在 `5.3.0` 版本以前,`ShardingSphere-JDBC` 同时支持 `Java API`、`YAML`、`Spring Boot Starter` 和 `Spring Namespace` 等配置方式。 - 当新增或更新 API 时,需要调整多项配置文件,工作量大 - 社区需要维护多重配置文档和示例 - `Spring Bean` 生命周期管理容易受到项目其他依赖的影响,比如 `PostProcessor` 无法正常执行 - `Spring Boot Starter` 和 `Spring N

gmHappy 2万+

不增加服务器提高并发量,tomcat设置提高并发量

一个服务的实际并发量收到很多方面因素的影响,大致归类一下如下:1、数据库,这是web项目中最常见的瓶颈,解决方法一般都是通过cache2、远程接口调用,解决方法是选择高性能的RPC框架,如dubbo+ZK等,使用长连接代替短连接3、容器,容器本身的并发量是有上限的,所以大型系统都是分布式的4、业务逻辑,复杂的业务逻辑肯定会花费更多的时间去处理,可以采用异步或多线程的方式解决5.其他,如JVM调优,...

weixin_26861329的博客 790

【从零开始学习SLAM】官方tf教程小海龟跟随程序

ros tf 进行坐标系之间转换的运算和发布

小秋 AI SLAM 入门实战教程 2034

[ 人力资源面试篇 ] HR 面试题分析详解大集合,看完直怼面试官(二)

那么在这个系列的文章中,我们聊到 HR 面谈什么?并且总结了五十个常见的人力资源面试题,在这里分享给大家。

qq_51577576的博客 1381

使用log4j 来输出tomcat stdout日志

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33979203的博客 2341

车间数据孤岛终于破了!C#上位机+MQTT打通产线与MES,数据延迟从小时级降到秒级

本文针对工业上位机开发中常见的车间数据与企业管理系统(MES)割裂问题,提出基于C#和MQTT协议的完整解决方案。通过EMQX MQTT Broker实现数据实时双向传输,将质量追溯时间从2小时缩短至10秒,生产计划自动下发,实现秒级数据延迟。方案采用分层解耦架构,支持设备更换和系统升级,核心优势包括低延迟、高可靠性和易扩展性。文章详细介绍了MQTT协议选型理由、整体架构设计、技术选型(EMQX Broker和MqttNet客户端),并提供了C#实现代码和部署流程。该方案已在实际产线验证,可有效解决&quo

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 484

【杂谈】Spring Boot 默认支持的并发量

Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。当在配置文件中敲出max后提示值就是它的默认值。 我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000。 并发量指的是连接数,还是线程数? 当然是连接数。 200个线程如何处理10000条连接?...

dieqiuxie4160的博客 8407

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

tomcat优化之增加Tomcat最大连接数

使用场景 我在做完一个XXX项目后,测试时发现并发数量增加到一定程度就会很卡,于是我想到了是不是tomcat最大连接数设置有限制.果不其然,配置文件中最大值才500,于是我更改了最大连接数,根据业务我修改了连接数为1500,完美的解决了这个问题; 修改方法在conf/service.xml中默认值 <Connector port="8080" maxHttpHeaderSize="8192"...

天明的博客 3087

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

springboot tomcat默认线程数_Spring Boot 默认支持的并发量

Spring Boot应用支持的最大并发量是多少?Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改。当在配置文件中敲出max后提示值就是它的默认值。我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000。并发量指的是连接数,还是线程数?当然是连接数。200个线程如何处理10000条连接?Tomcat有两种处理连接的模式,...

weixin_39559895的博客 1426

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

如果WEB请求并发量过高,Tomcat所在服务器经常出现服务异常,应该如何处理?

面试题:如果WEB请求并发量过高,Tomcat所在服务器经常出现服务异常,应该如何处理?

weixin_43666051的博客 1906

面试官问:你们服务最大的并发量是多少?怎么回答?

推荐学习 1:牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖 2:金三失足,7月喜提“Java高分指南(25专题)”,银十翻盘有望 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置。由于现在都使用的是springboot服务,配置文件中也没有配置Tomcat 相关参数,基本都是使用默认的Tomcat的线程配置。 默认设置中,Tomcat的最大线程数200,最大连接数10000。 并发量指的是连接数,还是线程数? 连接数。 200个线程如何处

m0_67645544的博客 1483

收集的关于各服务器的并发量问题

linix系统平台大并发量下tomcat5.5优化策略(2009-03-11 12:45:24)标签:linux tomcat5.5 优化策略 it 分类:java 在部署系统后,为了增加系统并发量,系统响应速度,做了一些工作;遂整理如下。 1、修改server.xml文件 主要修改了maxThreads、acceptCount。 引用 Google资料说“如果...

lq2004509的博客 158

Tomcat内存优化第五篇 - APR

博主个人主页 上一篇

路克森的博客 390

面试官问:该怎么回答你们服务最大的并发量是多少?

推荐学习 1:牛掰!“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖 2:金三失足,7月喜提“Java高分指南(25专题)”,银十翻盘有望 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置。由于现在都使用的是springboot服务,配置文件中也没有配置Tomcat 相关参数,基本都是使用默认的Tomcat的线程配置。 默认设置中,Tomcat的最大线程数200,最大连接数10000。 并发量指的是连接数,还是线程数? 连接数。 200个线程如何处

aa119101的博客 1103

Linux下Tomcat性能优化--文件句柄数增大

今天在对项目进行性能压力测试时,设置并发量为1000,发现Tomcat控制报错: java.IOException:打开的文件过多 经搜索,发现是由于Linux默认设置的句柄数为1024,当并发量过大,就不够用了; 原因: 操作系统的中打开文件的最大句柄数受限所致,常常发生在很多个并发用户访问服务器的时候.因为为了执行每个用户的应用服务器都要加载很多文件(new一个socke...

weixin_34258782的博客 924

linux修改文件句柄数生效_Linux下tomcat报too many open files错误解决方法

问题描述tomcat日志中报too many open files导致程序无法读取文件错误。报错原因出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。java.IOException:打开的文件过多经搜索,发现是由于Linux默认设置的句柄数为1024,当并发量过大,就不够用了;原因: 操作系统的中打开文件的最大句柄数受限所致,常常发生在很多个并发用户访问服务器的时候.因为...

weixin_32199821的博客 359
上一篇: div高度百分比
下一篇: java生成指定范围的随机数
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值