Apache / Tomcat / Mod.JK的高容量设置

我有一个3.5 GB的CPU服务器运行在tomcat / Apache与mod.jk。 我们看到我们的服务器本身有足够的内存可用,而tomcat在GC方面并没有显示出任何疯狂的地方。

我们一直在为maxClient maxThreads和workers.properties中的socket_timeout尝试不同的设置。

我们平均约有4000个并发用户,估计每秒请求的数量有点难,但是可能有400个(我猜)。

如果tomcat中的maxThreads总是大于httpd中的maxClients? 如果是这样多less。

我们尝试了maxClient在250和maxThreads在300,我们看到networking缓慢,但服务器看起来不错。

我们的平均httpd大小也是10mg。

任何帮助将是伟大的!

谢谢

你不会说你正在使用哪个MPM,或者哪个Tomcat版本,所以我不能像想象的那么精确。

AJP默认使用持久连接。 因此,默认情况下,Tomcat在其线程池中至less需要与httpd具有maxClients一样多的线程。 这往往是非常低效的,因为大多数连接将是空闲的。

有几种方法可以改善事情:

  1. 如果可用,切换到NIO AJP连接器(Tomcat 7以上)。 您需要使用maxThreads>预期的并发请求来configurationTomcat的AJP连接器。

  2. 禁用httpd端的连接重用。 用mod_jk这意味着使用

    JkOptions + DisableReuse

忽略文档中有关性能损失的警告 – 他们是不正确的。 您仍然需要使用maxThreads>预期的并发请求来configurationTomcat的AJP连接器。

有关更多详细信息,请参阅我的反向代理演示文稿和Rainer的注释 。