如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生啥?

Posted

技术标签:

【中文标题】如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生啥?【英文标题】:What happens if I give a large value to server.tomcat.max-threads to handle load on my application?如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生什么? 【发布时间】:2020-12-06 06:13:23 【问题描述】:

周围有1000+ jobs running through our service in a day and around 70-80 jobs starting at the same time and running parallelly

为了处理这个问题,我们认为将最大线程数增加到很大的数量到我们的 Spring 应用程序的 server.tomcat.max-threads 属性应该可以工作,但我不完全相信拥有一个像800 这样的巨大数字到这个属性。

你能帮忙吗?

【问题讨论】:

该属性对请求处理线程没有帮助。 【参考方案1】:

Tomcat 的默认安装将 HTTP 服务线程的最大数量设置为 200。实际上,这意味着系统最多可以同时处理 200 个 HTTP 请求。当并发 HTTP 请求的数量超过此计数时,未处理的请求将被放置在一个队列中,并在处理线程可用时为该队列中的请求提供服务。此默认队列长度为 100。在这些默认设置下,可同时生成 300 多个请求的大型 Web 负载将超过线程可用性,从而导致服务不可用 (HTTP 503)。

更多参考:https://docs.bmc.com/docs/brid91/en/tomcat-container-workload-configuration-825210082.html

How to run multiple servlets execution in parallel for Tomcat?

如果这是一个类似配置的批处理作业,你可以使用spring批处理。

【讨论】:

以上是关于如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

如果我给用户表权限,我是不是也需要给他们一个数据库角色

如果我给 server.tomcat.max-threads 一个很大的值来处理我的应用程序的负载,会发生啥?

我给HR小姐姐讲了Nginx防盗链,我俩聊的很开心

我给自己写了个轮子

为了戒网,我给每个网站自动添加3-25秒的访问延迟

为了摸鱼,我给自己写了个轮子