Apache不会发布工作线程(mpm事件)

时间:2019-09-04 11:23:34

标签: apache configuration ubuntu-18.04 lucee

我在apache中的mpm事件模块上遇到了问题。对于我们的客户,我们有一个apache / lucee网络服务器。 Apache充当lucee Web服务器代理的传递功能。

我们似乎遇到了导致apache保持线程锁定的问题。我注意到了这一点,因为我使用了apache中内置的服务器状态功能。

我已经修改了用于mpm-event模块的conf文件,它的当前位置如下:

StartServers            16
MinSpareThreads         480
MaxSpareThreads         480
ThreadsPerChild         30
MaxRequestsPerChild     1000
MaxClients              480
ThreadLimit             64
ServerLimit             16

该服务器是ubuntu 18.04,具有4个内核和16GB的ram,它已安装apache 2.4.29,lucee 5.3.4.37和一个通过pm2运行的nodejs v11.2.0服务。

我在jMeter上进行了一些负载测试,一切都表现得很好。这只是阿帕奇,似乎没有放开线程。在大多数情况下,它们保持状态为“ R”阅读请求,“ W”发送答复或“ G”正常完成。一旦连接数量饱和,apache就会挂起,我需要重新启动apache服务。

______R______________________________________............G..__RR
R___R____________________________________R______________RRRRRR_R
R___RR________RRRRRW__RR_____________.GGGGGGG....G...G.....G....
.......G.G...G..G.......G....G.........G.G......

我检查了Apache错误日志,但找不到任何东西。 lucee错误日志和nodejs错误日志相同。

我已经阅读了很多与此相关的主题,并尝试了几乎所有可以找到的解决方案。现在已经进行了一段时间,所以我可能不记得我已经尝试过的所有内容。

感谢任何输入。

编辑: 我将按以下方式连接到lucee:

        TimeOut 50
        ProxyTimeout 30
        ProxyBadHeader IsError
        ProxyPreserveHost On
        ProxyPassMatch ^/(.+\.cf[cm])(/.*)?$ ajp://127.0.0.1:8009/$1$2 connectiontimeout=2 timeout=30 retry=30 ttl=30
        ProxyPassMatch ^/(.+\.cfml)(/.*)?$ ajp://127.0.0.1:8009/$1$2 connectiontimeout=2 timeout=30 retry=30 ttl=30

EDIT2:我可能已经找到了解决该问题的方法,尽管可能不是最好的方法。看来,当您在apache中禁用KeepAlive属性时,连接/线程将按应有的方式被释放...

0 个答案:

没有答案