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

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.kler.cn/a/456676.html

相关文章:

  • 数据结构(哈希表)
  • Linux Ubuntu24配置安装Java
  • Oracle复合索引规则指南
  • STM32 高级 WIFi案例1:测试AT指令
  • Unity 读Excel,读取xlsx文件解决方案
  • MySQL 中存储金额数据一般使用什么数据类型
  • 华为 IPD,究竟有什么特点?(一)
  • ADBKeyBoard 安装 (中文输入)
  • Amazon Bedrock Claude 3 在客户服务自动化中的应用方法
  • 医院也逐渐使用复合机器人向自动化转型升级
  • .net core 的软件开发工具
  • 环信API方法介绍
  • 从头开始学MyBatis—04缓存、逆向工程、分页插件
  • Linux文本处理的利剑:grep、sed和awk的深度解析与应用
  • ARM架构虚拟化原理
  • 【信息系统项目管理师】高分论文:论信息系统项目的资源管理(智慧储电站系统)
  • 机器学习详解(11):分类任务的模型评估标准
  • Python学习(2):注释、数字、文本、列表
  • 【漏洞复现】CVE-2022-41678 Arbitrary JMX Service Invocation with Web Interface
  • JS实现Table表格数据跑马灯效果
  • 游戏开发-UE4高清虚幻引擎教程
  • 硬件设计-时钟振荡器
  • R数据分析:工具变量回归的做法和解释,实例解析
  • VSCode 插件开发实战(七):插件支持了哪些事件,以及如何利用和监听这些事件
  • MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
  • 【视觉惯性SLAM:七、ORB-SLAM2:ORB特征提取】