当前位置: 首页 > news >正文

Tomcat调优相关理解

什么是QPS?

是Queries Per Second 的缩写,是指服务器每秒查询数,比如定义一个a接口,该接口是10QPS,那么就是指该接口每秒可以处理10个请求

springboot默认并发处理数是多少?

springboot并发处理要看servlet容器,而servlet容器默认是Tomcat,而Tomcat容器可以处理的并发请求数主要受到最大线程数(max-threads)的限制,Tomcat的默认最大线程数通常是200,这意味着在默认情况下,SpringBoot应用可以同时处理200个并发请求。

Tomcat主要配置参数

最大连接数(max-connections):Tomcat可以处理的最大请求数量。超过这个数量的请求会被放入到等待队列中。在SpringBoot的某些版本中,这个默认值可能是10000或8192,具体取决于SpringBoot和Tomcat的版本。

等待队列长度(accept-count):当所有可能的请求处理线程都在使用中时,传入连接请求的最大队列长度。在默认情况下,这个值通常是100。当等待队列也满了之后,新的请求会被拒绝。

最小工作线程数(min-spare-threads):Tomcat启动时创建的线程数,也是线程池中最小的线程数。这个值通常设置为较小的数字,以确保在并发请求较少时不会浪费资源。在默认情况下,这个值可能是10或更小。

最大工作线程数(max-spare-threads):刚才已经说了。默认200,具体默认多少,可能版本不同 ,本文只是作为帮助快速大概对Tomcat的调优相关理解。

从上文得出疑问

最大工作线程数和最大连接数什么关系?

可以根据Tomcat的不同IO模型来理解:

在BIO模型下

最大线程数和最大请求数量是相等的,因为每个连接都需要一个线程来处理。 在

NIO和NIO2模型下

最大线程数和最大请求数量可以不同。最大线程数仍然表示Tomcat能够同时处理的最大请求线程数量,而最大请求数量则表示Tomcat能够同时接受的网络连接的最大数量。由于NIO和NIO2模型采用了更高效的I/O处理方式,因此最大请求数量可以远大于最大线程数。
 

关于等待队列和最大请求数量的关系?

1、等待队列的长度和最大请求数量是两个不同的配置参数,它们之间没有直接的依赖关系。

2、等待队列的长度限制了当所有线程都在忙碌时,Tomcat能够暂时存储的额外请求数量。

3、最大请求数量则限制了Tomcat能够同时接受的网络连接的最大数量。

4、因此,即使最大请求数量设置为10000,当所有线程都在忙碌且等待队列也满了之后,新的请求仍然会被拒绝,并返回一个错误响应给客户端。这个错误通常是一个HTTP 503状态码。

5、当前活跃的连接数已经达到了最大请求数限制,那么即使线程池和等待队列还有空间,Tomcat也会拒绝新的连接尝试。

Tomcat线程池的工作机制

Tomcat的线程池在处理并发请求时,首先会使用核心线程数(即最小工作线程数)来处理请求。当核心线程数都在忙碌时,如果有新的请求到来,Tomcat会尝试将请求放入到等待队列中。如果等待队列也满了,并且达到了最大线程数的限制,那么新的请求就会被拒绝。除此外,如果最大请求数超出限制,就算线程池和等待队列有空间也会拒绝请求。

==========后续还会对本文进行完善或修改部分内容===========

http://www.lryc.cn/news/511123.html

相关文章:

  • uni-app开发-识图小程序-主要功能以及首页实现
  • vue3 ref reactive响应式数据,赋值的问题、解构失去响应式问题
  • 算法常用库函数——C++篇
  • 怎么把多个PDF合并到一起-免费实用PDF编辑处理工具分享
  • RFC协议简要介绍——有关TCP拥塞控制的RFC
  • Speckly:基于Speckle文档的RAG智能问答机器人
  • 香橙派5Plus启动报错bug: spinlock bad magic on cpu#6, systemd-udevd/443
  • 电子应用设计方案74:智能家庭对讲系统设计
  • node js 过滤空白行
  • 武泳樽携手AI AD Manager荣获红点奖,智能广告管理系统备受瞩目
  • Express.js 有哪些常用的中间件?
  • WordPress File Upload插件 任意文件读取漏洞复现(CVE-2024-9047)(附脚本)
  • qt QZipReader详解
  • C# 超高速高性能写日志
  • 阿里云人工智能ACA(五)——深度学习基础
  • 入职体检尿潜血3+能通过吗,什么原因引起
  • vue最新源码探索分析
  • Kivy App开发之打包apk
  • 【Java 数据结构】LinkedList 类 和 模拟实现链表
  • VS2022 中的 /MT /MTd /MD /MDd 选项
  • 产品初探Devops!以及AI如何赋能Devops?
  • 两种不同的LuaBehaviour生命周期绑定
  • Effective C++ 条款31:将文件间的编译依存关系降至最低
  • python数据分析之爬虫基础:scrapy详解
  • openwrt 负载均衡方法 openwrt负载均衡本地源接口
  • Linux高级--3.3.2.6高并发编程之“内存屏障”“CPU屏障”“编译屏障”
  • 【含开题报告+文档+PPT+源码】基于SpringBoot的智能安全与急救知识科普系统设计与实现
  • EMQX5.X版本性能配置调优参数
  • 电脑配置maven-3.6.1版本
  • 水电站视频智能监控系统方案设计与技术应用方案