Tomcat并发数配置
来源:互联网 发布:知乎怎么回答别人问题 编辑:程序博客网 时间:2024/05/18 03:18
配合做压力测试的时候,有时候提高并发数的时候 莫名的出现服务器卡顿现象,服务器拒绝连接,前端出现502 Bad Gateway等错误信息,而后端服务器日志确没有错误提示。
可能原因是tomcat高并发下连接数设置问题,或者没有设置,采用默认的。
解决方法增加tomcat连接数
在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout: 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
如:
<Connector port="8080"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
acceptCount="100"
/>
maxThreads="150" 表示最多同时处理150个连接
minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待
maxSpareThreads="75" 表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。
acceptCount="100" 当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。
设置如下
<Connector URIEncoding="UTF-8"
port="10000"
acceptCount="500"
maxThreads="2000"
minSpareThreads="200"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
acceptCount对暂时无法执行的请求进行队列保存,超出设置则拒绝连接。
测试发现无法限制住最大并发数,所有请求都可以依次执行,每次有1个线程执行(maxThreads=1)
最大并发数如果过大,大于acceptCount值好几倍,会随机出现连接被拒绝。
- Tomcat并发数配置
- Tomcat内存,并发数配置
- Tomcat的配置最大并发连接数
- Tomcat最大并发数
- 解决tomcat并发数
- Tomcat并发数优化
- Tomcat 7最大并发连接数的配置
- Tomcat高并发配置
- Tomcat高并发配置
- tomcat并发配置
- tomcat并发性配置
- TOMCAT 高并发配置
- Tomcat JVM、并发配置
- tomcat 设置并发连接数
- tomcat支持的并发数
- 查看tomcat当前并发数
- Tomcat并发数优化总结
- Tomcat的最大并发数
- 诗歌
- 第十六周项目1-(5)验证算法直接选择排序
- 关于git分支
- mysql的索引
- hibernate 注解详解
- Tomcat并发数配置
- 读写文件
- 限制一个UITextField的输入字数
- Android国际化问题以及在应用内切换不同语言设置
- SQL高级查询——50句查询(含答案)
- waters on the Malacca Strait
- Android自定义预定日历,并且显示阴历
- Groovy语言
- Linux ls 用c语言实现