Tomcat - 在Http连接器中配置maxThreads和acceptCount

Jmo*_*y38 7 apache tomcat jdbc tomcat6

我目前使用Tomcat部署了一个应用程序,它通过JDBC与Postgres数据库交互.查询非常昂贵,所以我看到的是由Tomcat或Apache引起的超时(Apache在我的配置中位于Tomcat前面).我正在尝试将与数据库的连接限制为20-30个并发连接,这样数据库就不会被淹没.我使用\ ..配置完成了这项工作,将maxActive设置为30,将maxIdle设置为20.我还提升了maxWait.

在这种情况下,我限制了数据库的使用,但我希望连接/请求在Tomcat中是POOLED.Apache可以同时接受250个请求.所以我需要确保Tomcat也可以接受这么多,但要适当地处理它们.

Tomcat在HTTP Connector配置文件中有两个设置:

  • maxThreads - "Http Connector创建的请求处理线程的最大数量,因此决定了可以处理的最大并发请求数".
  • acceptCount - "当所有可能的请求处理线程都在使用时传入连接请求的最大队列长度.队列已满时收到的任何请求都将被拒绝."

所以我猜测如果我将maxThreads设置为最大JDBC连接数(30),那么我可以将acceptCount设置为250-30 = 220.

我不太明白在从池中打开的JDBC连接上的WAITING与排队的线程之间的区别...我的想法是排队的线程消耗的周期较少而正在运行的线程,等待JDBC池,将花费周期检查池中的免费线程......?

Mar*_*cus 4

请注意,HTTP 连接器用于传入 HTTP 请求,与 JDBC 无关。您可能需要单独配置 JDBC 连接池,例如 JDBC 连接器的 connectionProperties: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html