如何增加tomcat线程池中的线程数?
Posted
技术标签:
【中文标题】如何增加tomcat线程池中的线程数?【英文标题】:How to increase number of threads in tomcat thread pool? 【发布时间】:2011-09-18 03:54:41 【问题描述】:我只想知道 以及设置最大值的数字是多少,我不知道什么合适?
【问题讨论】:
【参考方案1】:听起来你应该保留默认值 ;-)
说真的:您应该设置的最大并行连接数取决于您预期的 tomcat 使用量以及服务器上的内核数。处理器上有更多内核 => 可以执行更多并行线程。
在这里查看如何配置...
Tomcat 10:https://tomcat.apache.org/tomcat-10.0-doc/config/executor.html
雄猫 9:https://tomcat.apache.org/tomcat-9.0-doc/config/executor.html
Tomcat 8:https://tomcat.apache.org/tomcat-8.0-doc/config/executor.html
Tomcat 7:https://tomcat.apache.org/tomcat-7.0-doc/config/executor.html
雄猫 6:https://tomcat.apache.org/tomcat-6.0-doc/config/executor.html
【讨论】:
嗨,我正在运行 spring 批处理远程分区应用程序并使用 spring 集成入站网关。我已将并发设置为 10,但我看到,它始终运行最多 8 个线程。这与服务器的 CPU 核心数有关吗?有什么办法可以增加线程并发?对于正在运行的进程,CPU 使用率并不太高。 ***.com/questions/24575008/…【参考方案2】:您必须根据您的环境对其进行调整。
有时增加积压的大小 (acceptCount) 比增加最大线程数更有用。
说,而不是
<Connector ... maxThreads="500" acceptCount="50"
你使用
<Connector ... maxThreads="300" acceptCount="150"
在某些情况下,您可以获得更好的性能,因为争用资源的线程会更少,并且积压队列会被更快地消耗。
不过,无论如何,你必须做一些基准测试才能真正知道什么是最好的。
【讨论】:
注意点:这些设置在来自Tomcat Documentation
最大连接数 当达到此数量时,服务器将接受但不处理另一个连接。 一旦达到限制,操作系统仍然可以根据 acceptCount 设置接受连接。 (当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列已满时收到的任何请求都将被拒绝。默认值为 100。)对于 BIO,默认值为 maxThreads 的值,除非 Executor在这种情况下使用默认值将是来自执行程序的 maxThreads 的值。对于 NIO 和 NIO2,默认值为 10000。对于 APR/native,默认值为 8192。请注意,对于 Windows 上的 APR/native,配置的值将减小到小于或等于 maxConnections 的 1024 的最大倍数。这样做是出于性能原因。
最大线程数 此连接器要创建的最大请求处理线程数,因此决定了可以处理的最大并发请求数。如果未指定,则此属性设置为 200。如果执行器与此连接器关联,则忽略此属性,因为连接器将使用执行器而不是内部线程池执行任务。
【讨论】:
以上是关于如何增加tomcat线程池中的线程数?的主要内容,如果未能解决你的问题,请参考以下文章