【问题标题】:How to increase number of threads in tomcat thread pool?如何增加tomcat线程池中的线程数?
【发布时间】:2011-09-18 03:54:41
【问题描述】:

我只想知道如何增加tomcat线程池中的线程数? 以及设置最大值的数字是多少,我不知道什么合适?

【问题讨论】:

    标签: tomcat7 threadpool


    【解决方案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 使用率并不太高。 stackoverflow.com/questions/24575008/…
    【解决方案2】:

    您必须根据您的环境对其进行调整。

    有时增加积压的大小 (acceptCount) 比增加最大线程数更有用。

    说,而不是

    <Connector ... maxThreads="500" acceptCount="50"
    

    你使用

    <Connector ... maxThreads="300" acceptCount="150"
    

    在某些情况下,您可以获得更好的性能,因为争用资源的线程会更少,并且积压队列会被更快地消耗。

    不过,无论如何,你必须做一些基准测试才能真正知道什么是最好的。

    【讨论】:

    • 注意点:这些设置在/conf/server.xml
    【解决方案3】:

    来自Tomcat Documentation

    最大连接数 当达到此数量时,服务器将接受但不处理另一个连接。 一旦达到限制,操作系统仍然可以根据 acceptCount 设置接受连接。 (当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列已满时收到的任何请求都将被拒绝。默认值为 100。)对于 BIO,默认值为 maxThreads 的值,除非 Executor在这种情况下使用默认值将是来自执行程序的 maxThreads 的值。对于 NIO 和 NIO2,默认值为 10000。对于 APR/native,默认值为 8192。请注意,对于 Windows 上的 APR/native,配置的值将减小到小于或等于 maxConnections 的 1024 的最大倍数。这样做是出于性能原因。

    最大线程数
    此连接器要创建的最大请求处理线程数,因此决定了可以处理的最大并发请求数。如果未指定,则此属性设置为 200。如果执行器与此连接器关联,则忽略此属性,因为连接器将使用执行器而不是内部线程池执行任务。

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多