【问题标题】:tomcat 7 maxThreads selection criteriatomcat 7 maxThreads 选择标准
【发布时间】:2012-11-01 09:01:40
【问题描述】:

我正在使用 tomcat 7 并希望调整 server.xml 中的 maxThreads 属性。

这个属性有什么选择标准吗?我的机器中有 8 GB RAM,并使用 -Xms 和 -Xmx JAVA_OPTS 为 tomcat JVM 分配 4 GB RAM。

如果您需要更多信息,请告诉我。

谢谢。

【问题讨论】:

    标签: tomcat tomcat6 tomcat7


    【解决方案1】:

    您应该使用的最大线程数取决于您的用例、您的请求的预期响应时间、您的服务器应该能够同时处理的数量、您的 CPU(例如核心数)、您的操作系统, ... 最多 200 个线程的默认值通常是可以的。 如果您认为需要修改此值,您应该运行一些性能/压力测试并监控不同配置的不同响应时间。

    【讨论】:

    • 感谢您的回复。我将 maxThreads 设置为 1000,并在 30 秒内从 2 个不同的 JVM 发送了 2000 个请求。但是在 catalina.out 中没有看到任何错误,例如“所有 tomcat 线程都忙...”。下面是我的机器信息 - CPU - Intel(R) Xeon(R) CPU E5540 @ 2.53GHz, 4 cores, Ram - 8GB, 分配 4GB 给 tomcat JVM heap, OS 是 RHEL 5.....tomcat 服务器有多少线程在启动时发布?我认为,只要需要,它就可以创建高达 maxThreads 值的线程。如果我错了,请纠正我。如果我将 maxThreads 设置为如此高的值,比如 1000,你会发现任何问题吗?
    • 每 30 秒 2000 个请求等于每秒 66 个请求。即使响应时间是 5 秒,您也只需要 330 个线程即可在 5 秒内处理所有请求。您的 CPU 只能同时处理 4 个(8 个超线程)请求。任何额外的线程都会导致代价高昂的上下文切换,并且 Tomcat 不是机器上唯一的进程。 MinSpareThreads 是初始创建的线程数,默认值为 4。如前所述,实际最大线程数取决于您的用例和线程实际执行的操作。线程是在等待还是消耗cpu时间。
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2012-01-18
    • 1970-01-01
    • 2011-12-30
    • 2013-06-28
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多