【编程开发】之 Tomcat 请求数设置与 QPS

这篇具有很好参考价值的文章主要介绍了【编程开发】之 Tomcat 请求数设置与 QPS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SpringBoot 内置 Tomcat 对请求数的设置


1、maxThreads:最大线程数

每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务容器可以同时处理多少个请求。

maxThreads 默认 200,建议增加,但增加线程是有成本的,更多的线程,不仅仅会带来更多的线程上下文切换成本,而且意味着带来更多的内存消耗。JVM中默认情况下在创建新线程时会分配大小为 1M 的线程栈,所以,更多的线程异味着需要更多的内存。

线程数的经验值为:

  • 1核CPU + 2g内存,线程数经验值200;
  • 2核CPU + 4g内存,线程数经验值400;
  • 4核CPU + 8g内存,线程数经验值800。

2、accept-count:最大等待数

当所有的请求处理线程都在使用时,所能接收的连接请求的队列的最大长度。当队列已满时,任何的连接请求都将被拒绝。accept-count 的默认值为 100

详细的来说就是,当调用 HTTP 请求数达到 tomcat 的最大线程数时,还有新的 HTTP 请求到来,这时 tomcat 会将该请求放在等待队列中,这个 acceptCount 就是指能够接受的最大等待数,默认100。如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)。

3、maxConnections:最大连接数

这个参数是指在同一时间,tomcat 能够接受的最大连接数。对于 Java 的阻塞式 BIO,默认值是 maxthreads 的值;如果在 BIO 模式使用定制的 Executor 执行器,默认值将是执行器中 maxthreads 的值。对于 Java 新的 NIO 模式,maxConnections 默认值是10000。

对于 windows上APR/native IO 模式,maxConnections 默认值为 8192,这是出于性能原因,如果配置的值不是1024的倍数,maxConnections 的实际值将减少到1024的最大倍数。 如果设置为-1,则禁用maxconnections功能,表示不限制tomcat容器的连接数。 maxConnections和accept-count的关系为:当连接数达到最大值maxConnections后,系统会继续接收连接,但不会超过acceptCount的值。

二、TPS 与 QPS


1、TPS

TPS(Transactions Per Second),意思是每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。以单接口定义为事务举例,每个事务包括了如下3个过程:

  1. 向服务器发请求;
  2. 服务器自己的内部处理(包含应用服务器、数据库服务器等);
  3. 服务器返回结果给客户。

如果每秒能够完成 N 次以上3个过程,TPS 就是 N。

TPS 是软件测试结果的测量单位。我们在进行服务性能压测时,接口层面最常关注的是最大 TPS 以及接口响应时间,个人理解 TPS 可以指一组逻辑相关的请求,而服务整体处理能力取决于处理能力最低模块的TPS值。

2、QPS

QPS(Queries Per Second),意思是每秒查询数。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标,比如 dns,它不包含复杂的业务逻辑处理,比如数据库中的每秒执行查询 sql 的次数。

QPS 只是一个简单查询的统计显然,不能描述增删改等操作,显然它不够全面,所以不建议用 QPS 来描述系统整体的性能;

QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 T;但一次 T 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

QPS 的计算公式: QPS = req/sec = 请求数/秒文章来源地址https://www.toymoban.com/news/detail-572787.html

3、TPS 与 QPS 的区别

  • 如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS
  • 如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS

到了这里,关于【编程开发】之 Tomcat 请求数设置与 QPS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Tomcat】Tomcat的实现,tomcat内部是怎么实现的,它是怎么做到对Servlet请求的处理的。

    让你想手写一个tomcat容器 能做到吗 Tomcat是Servlet容器,这句话真的是精髓,但有怎么理解呢? Tomcat的代码实现,原理 尝试自己手写一份tomcat服务,类似tomcat的功能。 tomcat是servlet容器。所以我们自己写的tomcat也要满足这个功能,能接受处理servlet请求。 这一段的代码还是很经

    2024年02月09日
    浏览(38)
  • Tomcat的请求连接配置

    从默认配置看,SpringBootd的最大可以处理8292个请求,方便记忆是:不到8300 线程的工作机制: 并发请求进来,看最小线程数能否满足作业,如果请求量超出最小线程数,就让超出的那部分进入等待队列,如果等待队列都不能完全容下,就需要开辟新的线程但不能超过做大线程

    2024年04月28日
    浏览(35)
  • web入门---tomcat&请求响应

    Web 服务器是一个软件程序,对 HTTP协议的操作进行封装,使得不必直接对协议进行操作,让 web 开发更加便捷。主要功能是“提供网上信息浏览服务”。 下载 tomcat 这里有一个示例 直接双击打开 index.html 但是这个“打开”是再本地浏览器打开的,不是通过服务器打开的 接下来

    2024年02月07日
    浏览(47)
  • Tomcat 一次请求的生命周期

    在使用 Tomcat 的时候,我们只需要在 Servlet 实现类中写我们的业务逻辑代码即可,不需要管 Socket 连接、协议处理要怎么实现,因为这部分作为不经常变动的部分,被封装到了 Tomcat 中,程序员只需要引入 Tomcat 中即可,这也是面向对象编程的经典实践。 那么 Tomcat 中的一次请

    2024年02月12日
    浏览(43)
  • Tomcat处理请求的全过程

    在Tomcat处理客户端请求的过程中,这里面有三个组件概念,他们都是线程,分别负责不同的职责。 (必须记清楚这三个线程组件) Acceptor 一个普通线程任务,用于接收新连接,并将新连接封装,选择一个 Poller 将新连接添加到 Poller 的事件队列中。 Poller 一个线程任务,用于

    2024年01月20日
    浏览(39)
  • Tomcat中间件打印请求日志

    修改conf下的 server.xml 文件中的 Valve 配置 主要修改pattern的值 相关pattern的含义可以参考官方文档,这里贴上方便查询 最后打印格式如下 在SpringBoot使用嵌入式Tomcat可以在配置文件中按照如下配置 directory可以配置相对路径或绝对路径,如果是相对路径,那么最终会放在Tomcat的基

    2024年02月07日
    浏览(53)
  • Tomcat请求处理流程与源码浅析

    系列文章目录和关于我 在tomcat中,Connector负责开启socket并且监听客户端请求,返回响应数据。 其中: Endpoint:tomcat中没有这个接口,只有AbstractEndpoint,它负责启动线程来监听服务器端口,并且在接受到数据后交给Processor处理 Processor:Processor读取到客户端请求后按照请求地址

    2024年02月06日
    浏览(42)
  • Tomcat处理http请求之源码分析

    本文将从请求获取与包装处理、请求传递给Container、Container处理请求流程,这3部分来讲述一次http穿梭之旅。 tomcat组件Connector在启动的时候会监听端口。以JIoEndpoint为例,在其Acceptor类中: 在上面的代码中,socket = serverSocketFactory.acceptSocket(serverSocket);与客户端建立连接,将连接

    2024年02月06日
    浏览(30)
  • Tomcat配置https(jks证书请求)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 上一篇文章已经提到tomcat的pfx证书请求和开启https的做法 链接https://blog.csdn.net/qq_46153140/article/details/123344395?spm=1001.2014.3001.5501 这篇文章则是tomcat的jks的生成 生成思路: key+csr=crt;crt+key = pfx;pfx+key=jks 

    2024年02月16日
    浏览(41)
  • tomcat和nginx的日志记录请求时间

            当系统卡顿时候,我们需要分析时间花费在哪个缓解。项目的后端接口可以记录一些时间,此外,在我们的tomcat容器和nginx网关上也可以记录一些有关请求用户,请求时间,响应时间的数据,可以提供更多的信息以便于排查问题。 1.tomcat日志 server.xml 以下列出了一些

    2024年02月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包