05 - Tomcat 线程池的配置与优化

添加 Executor

在server.xml中的Service节点里面,增加executor节点,然后配置connector的executor属性,如下:

<Executor
    name="tomcatThreadPool"
    namePrefix="catalina-exec-"
    maxThreads="3000"
    minSpareThreads="5"
    maxSpareThreads="20"
    acceptCount="20"
/>

参数说明:

namePrefix:线程池中线程的命名前缀。

maxThreads:Tomcat 可用于处理请求的最大线程数,默认是200。

minSpareThreads:Tomcat线程池的最小空闲线程数,等于初始的线程数。

maxSpareThreads:Tomcat最大空闲线程数,超过的会被关闭。

maxIdleTime:超过最小空闲线程数时,多的线程会等待这个时间长度,然后关闭。

acceptCount:当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认100。

配置 Executor

在Connector中指定上面的 Executor

<Connector
    executor="tomcatThreadPool"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="443"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    ....
    useBodyEncodingForURI="true"
/>

原文地址:https://www.cnblogs.com/duchaoqun/p/11955883.html

时间: 2024-10-13 14:48:07

05 - Tomcat 线程池的配置与优化的相关文章

记录一次线程池的在项目中的实际应用,讲解一下线程池的配置和参数理解。

前言:最近项目中与融360项目中接口对接,有反馈接口(也就是我们接收到请求,需要立即响应,并且还要有一个接口推送给他们其他计算结果),推送过程耗时.或者说两个接口不能是同时返回,有先后顺序. 这时我想到了把自己Controller立即返回接受成功,中间添加一个新的线程去做其他耗时的操作(线程池配置和参数测试讲解请阅读第5步). 1.Controller代码如下: @Autowiredprivate CallThreadDemo worker; @RequestMapping("/bandBank

Tomcat线程池配置

1:配置executor属性 打开/conf/server.xml文件,在Connector之前配置一个线程池: <Executor name="tomcatThreadPool" namePrefix="tomcatThreadPool-" maxThreads="1000" maxIdleTime="300000" minSpareThreads="200"/> 重要参数说明: name:共

转-Tomcat 8 安装和配置、优化

https://github.com/judasn/Linux-Tutorial/blob/master/Tomcat-Install-And-Settings.md Tomcat 8 安装 Tomcat 8 安装 官网:http://tomcat.apache.org/ Tomcat 8 官网下载:http://tomcat.apache.org/download-80.cgi 此时(20160207) Tomcat 8 最新版本为:apache-tomcat-8.0.32.tar.gz 我个

如何设置tomcat线程池大小?

背景 在我们的日常开发中都涉及到使用tomcat做为服务器,但是我们该设置多大的线程池呢?以及根据什么原则来设计这个线程池呢?接下来,我将介绍本人是怎么设计以及计算的. 目标 确定tomcat服务器线程池大小 具体方法 众所周知,tomcat接受一个request后处理过程中,会设计到cpu的时间和IO等待的时间.其中IO等待时,cpu被动放弃执行,其他线程就可以利用这段时间片进行操作. 所以我们可以采用服务器IO优化的通用规则: 线程大小 = ( (线程io时间 + 线程cpu)  / 线程c

tomcat 线程池

web server允许的最大线程连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右. 1.编辑tomcat安装目录下的conf目录下的server.xml文件 在tomcat配置文件server.xml中的<Connector />配置中,和连接数相关的参数有: maxThreads="150"     表示最多同时处理150个连接,Tomcat使用线程来处理接收的每个请求.这个值表示Tomcat可创建的最大的线程数.默认

Tomcat的虚拟机主机配置与优化配置(实战!)

Tomcat虚拟主机配置 某些时候公司有多个项目同时运行时,一台服务器不建议运行多个Tomcat服务,需要配置虚拟主机通过两个域名访问到不同的项目内容步骤:1.创建www和bbs项目 目录和文件2.修改Tomcat主配置文件3.重启Tomcat服务4.测试 Tomcat优化 Tomcat 的缺省配置并不适合生产环境,它会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行.优化主要有三方面,分为操作系统优化(内核参数优化),Tomcat 配置文件参数优化,Java 虚拟机(J

SpringMVC整合TaskExecutor线程池的配置/使用

一.配置jdbc.properties添加: #------------ Task ------------ task.core_pool_size=5 task.max_pool_size=50 task.queue_capacity=1000 task.keep_alive_seconds=60 二.配置Spring的applicationContext.xml添加: <bean id="taskExecutor" class="org.springframewor

Tomcat线程池,更符合大家想象的可扩展线程池

因由 说起线程池,大家可能受连接池的印象影响,天然的认为,它应该是一开始有core条线程,忙不过来了就扩展到max条线程,闲的时候又回落到core条线程,如果还有更高的高峰,就放进一个缓冲队列里缓冲一下. 有些整天只和SSH打交道的同学,可能现在还是这样认为的. 无情的现实就是,JDK只有两种典型的线程池,FixedPool 与 CachedPool: FixedPool固定线程数,忙不过来的全放到无限长的缓冲队列里. CachedPool,忙不过来时无限的增加临时线程,闲时回落,没有缓冲队列.

tomcat线程池与servlet

①客户端向服务器端发出请求: ②这个过程比较重要,这时候Tomcat会创建两个对象:HttpServletResponse和HttpServletRequest.并将它们的引用(注意:是引用!)传给刚分配的线程中: ③线程开始着手接洽servlet: ④servlet根据传来的是GET和POST,分别调用doGet()和doPost()方法进行处理: ⑤和⑥servlet将处理后的结果通过线程传回Tomcat,并在之后将这个线程销毁或者送还线程池: ⑦Tomcat将处理后的结果变成一个HTTP响