tomcat是目前较为常用的Web容器,那么怎么配置tomcat才能使得自己的服务效率更高,今天我主要解释一下tomcat的最大线程数(maxThreads)、最大等待数(acceptCount)和最大连接数(maxConnections)。

**maxThreads(最大线程数):每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务可以同时处理多少个请求,默认200.****accepCount(最大等待数):当调用Web服务的HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100.如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。****maxConnections(最大连接数):这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于maxThreads+acceptCount。**

如果:https://www.jianshu.com/p/35878d4ec130

# 在配置文件中添加如下内容
# tomcat最大线程数,默认为200
server.tomcat.max-threads=200
# tomcat最大连接数,默认为10000(网上的说法)
server.tomcat.max-connections=300并发请求数 <= tomcat最大线程数200,可以看到200个请求,响应结果正常
并发数(201) >tomcat最大线程数200.可以看到,因为tomcat最大的线程数为200,201的并发请求量,超出了并发处理的数量200,多出来的1个请求,需要等待某个处理中的请求处理完成
请求数超过最大连接数300,可以看到有大量的没有正常响应的http请求,原因很简单,因为超过了tomcat设置的最大连接数,服务器拒绝了该次请求的连接

增加线程是有成本的,JVM中默认情况下在创建新线程时会分配大小为1M的线程栈,所以更多的线程异味着更多的内存;
更多的线程会带来更多的线程上下文切换成本。

springboot中Tomcat配置建议:
最大工作线程数 ,默认200(4核8G内存,线程数经验值为800,操作系统之间做线程之间切换调度是有开销的,不是越多越好),最大连接数默认是10000,等待长度默认为100,最小工作空闲线程默认10

线程数的经验值为:1核2G内存, 线程数经验值为200,;4核8G内存,线程数经验值为800

tomcat最大线程数、最大等待数和最大连接数相关推荐

  1. SpringBoot中修改tomcat最大连接数、最大线程数、最大等待数

    1)maxThreads(最大线程数)每一次HTTP请求到达Web服务器,Web服务器都会创建一个线程来处理该请求,该参数决定了应用服务同时可以处理多少个HTTP请求,tomcat默认为200:2)a ...

  2. Spring boot中最大连接数、最大线程数与最大等待数在生产中的异常场景

    在上周三下午时,客户.业务和测试人员同时反溃生产环境登录进入不了系统,我亲自测试时,第一次登录进去了,待退出后再登录时,复现了客户的问题,场景像是请求连接被拒绝了,分析后判断是spring boot的 ...

  3. springboot tomcat默认线程数_springboot tomcat最大线程数与最大连接数

    首先看看springboot内置的tomcat,该如何配置这两个参数 # 在配置文件中添加如下内容 # tomcat最大线程数,默认为200 server.tomcat.max-threads=200 ...

  4. 查看tomcat的线程数

    查看tomcat的线程数 ps -Lf pid |wc -l 查看tomcat的线程数 port: 5010 netstat -an|grep port|awk '{count[$6]++} END{ ...

  5. tomcat设置线程数

    查看Tomcat线程数 1.Tomcat默认线程数200 2.修改server.xml文件,增加maxThreads.minSpareThreads.maxSpareThreads.acceptCou ...

  6. 5000并发_彻底理解 jmeter 的线程数与并发数之间的关系

    概述 在jmeter中,只要提到并发,99%的同学立马想到线程组.需要多少并发就启动多少线程组,这已经成了大部分人的共识.这种理解方式很明显是把并发数和线程数的概念混淆了.线程组中不光有线程数,也有循 ...

  7. linux线程数和文件句柄数配置

    文章目录 进程和文件句柄概念 进程数和文件句柄数的查看 ulimit 修改进程数和文件句柄数限制 持久化修改用户进程数和文件句柄数限制 持久化修系统服务进程数和文件句柄数限制 linux系统总限制更新 ...

  8. c++ socket线程池_从连接器组件看Tomcat的线程模型——NIO模式

    Tomcat8之后,针对Http协议默认使用org.apache.coyote.http11.Http11NioProtocol,也就是NIO模式.通过之前的博客分析,我们知道Connector组件在 ...

  9. 每天都在用,但你知道 Tomcat 的线程池有多努力吗?

    这是why的第 45 篇原创文章.说点不一样的线程池执行策略和线程拒绝策略,探讨怎么让线程池先用完最大线程池再把任务放到队列中. 荒腔走板 大家好,我是 why,一个四川程序猿,成都好男人. 先是本号 ...

最新文章

  1. 钢铁飞龙每个人的机器人_让人震撼的特斯拉超级工厂全自动生产线
  2. 日志组件logback的介绍及配置使用方法
  3. 【转】Linux操作系统下/etc/hosts文件配置方法
  4. java处理请求的流程_Java Spring mvc请求处理流程详解
  5. all方法 手写promise_promise.all的实现
  6. 如果量子计算机成功应用,这世界上还有普通人的生存空间吗?
  7. android自定义进度条_Android中的自定义进度栏
  8. Beta阶段第三次网络会议
  9. 【书摘】批判性思维工具
  10. 坐上支付宝微信支付巨头的刷脸顺风车
  11. php在线生成logo,logo在线生成 php在线生成ico文件的代码
  12. 跟着团子学SAP PS-前台篇-创建网络活动及活动关系连接 CJ20N
  13. HTML格式及W3C验证工具
  14. html中的项目符号和编号,CSS重新定义项目符号和编号
  15. elasticsearch查询关键字slop
  16. ES实现自动补全查询
  17. linux 管理部门打印,Linux打印机相关的命令-打印管理_Linux常用命令大全
  18. js输出sb (!(~+[]) + {})[--[~+][+[]] * [~+[]] + ~~!+[]] + ({} + [])[[~!+[]] * ~+[]] 图解
  19. Unity 中实现UI左右滑动效果
  20. ajax心得体会论文,AJAX重点知识的心得体会

热门文章

  1. 分布式事务和分布式锁
  2. iOS 是如何获取夜间模式启动图缓存路径?
  3. 存档……【假装自己会刷题【怎么写着写着成了日记啊
  4. 毕业论文提纲怎么写?
  5. Arrays用法总结
  6. 使用ABB PC SDK开发ABB上位机记录
  7. rocketmq4.9 linux安装
  8. 实验一 JavaWeb开发环境
  9. 【计算机基础】02 Windows7操作系统习题
  10. B站科普区优质科普(技术区)UP主挖掘分析