无法从1个插槽获取worker abc的空闲端点

时间:2014-06-25 20:51:34

标签: apache mod-jk

我们最近从带有prefork的旧Apache切换到带有worker的2.4.9,配置为

ServerLimit         16
StartServers         2
MaxRequestWorkers  150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25

同时我们从mod_jk 1.2.37切换到1.2.40。现在我们偶尔得到:

20140625 18:04:29  [32187:139712338515728] [warn] ajp_get_endpoint::jk_ajp_common.c (3229): Unable to get the free endpoint for worker abc from 1 slots
20140625 18:04:29  [32187:139712338515728] [error] jk_handler::mod_jk.c (2744): Could not get endpoint for worker=abc
20140625 18:04:29  [32187:139712338515728] [info] jk_handler::mod_jk.c (2806): Service error=0 for worker=abc
20140625 18:04:29  500  "/abc/search?xyz=2" 534b abc:- 0.200348s

1个插槽是什么? isn< mod_jk应该动态配置自己以匹配Apache吗?我发现在" high"加载(在大约20个同时请求之后),更可能发生更多ThreadsPerChild。鉴于ThreadsPerChild 1它似乎根本没有发生,有效地将我减少到相当于prefork。

我是否在监督某些事情或者mod_jk在1.2.40中获取了Apache参数?

1 个答案:

答案 0 :(得分:1)

connection_pool_size的文档说:

  

JK将自动为Apache Web服务器发现此号码   并将池大小设置为此值。

事实证明这不是真的。它默认为1。将此设置为与ThreadsPerChild相同的值会使问题消失。