我们在 Apache 后面运行 Plone 4.1、Zope 2.13 和 mod_proxy_balancer。我们有 2 个 zope 实例,每个实例运行 2 个线程。
我们发现 Zope 和 Apache 之间的许多连接已建立但从未释放(或者至少它们已经存在很长时间)。
这在我们的实时和测试系统上都发生了。尝试在我们的测试系统上分析这一点:
其中一个 zope 实例的 pid 是 17577
# netstat -a -p | fgrep 17577/
tcp 0 0 *:18091 *:* LISTEN 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:36932 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:36931 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:36929 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:36940 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:36936 ESTABLISHED 17577/python
tcp 0 0 localhost.localdomain:51672 localhost.localdomain:mysql ESTABLISHED 17577/python
tcp 0 0 localhost.localdomain:47304 localhost.localdomain:mysql ESTABLISHED 17577/python
tcp 0 0 localhost.localdomain:47297 localhost.localdomain:mysql ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47559 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47556 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47554 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47552 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47567 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47565 ESTABLISHED 17577/python
tcp 0 0 dev.ic.soschildrensvi:18091 dev.ic.soschildrensvi:47560 ESTABLISHED 17577/python
因此 Apache 和 Zope 之间有 13 个连接。我向 Plone 发出请求,然后连接数增加到 16、17、19。今天早上我重启它们之前,一个实例上的连接数达到 88,另一个实例上的连接数达到 89。Apache 配置如下所示
ProxyPreserveHost On
<Proxy balancer://zopes>
BalancerMember http://dev:18091
BalancerMember http://dev:18092
</Proxy>
RewriteRule ^/(.*) balancer://zopes/VirtualHostBase/http/%{SERVER_NAME}:%{SERVER_PORT}%{ENV:PLONE_FOLDER_PATH}/VirtualHostRoot/$1 [last,proxy]
我发布此信息的原因是我们的服务器遇到了一些连接和性能问题,我想知道这是否与此有关。
我们还有一个单独的 Plone 3.3 / Zope 2.10 / Apache,没有平衡器配置,而且这不会留下任何连接。