Plone花了很长时间来响应字节范围请求

时间:2014-04-14 10:50:20

标签: apache plone zope mod-proxy mod-cache

我们有两个最近升级的Plone 4.3.2实例,它们位于haproxy负载均衡器后面,它本身就落后于Apache。

我们将每个Plone实例限制为使用haproxy配置服务两个并发请求。

我们最近遇到了一个问题,即客户端快速连续发送4个字节范围的请求,每个请求需要6到8分钟才能得到响应。这会将所有可用请求锁定6分钟,因此haproxy会超时排除队列中的其他请求。 PDF在Plone中存储了一个ATFile对象,我认为它应该在我们最近的升级中迁移到blob存储。

我的问题是我们应采取哪些措施来防止将来出现类似情况?

我也对:

感兴趣
  • 如何调试为什么在负载较轻的服务器上的字节范围请求需要很长时间才能响应
  • plone.app.blob如何处理字节范围请求
  • 是否可以配置Apache,以便从其缓存而不是从后端服务器提供字节范围请求

这里要求的是删除了多余配置的haproxy.cfg。

global
    maxconn         450
    spread-checks   3

defaults
    log             /dev/log local0
    mode            http
    option          http-server-close
    option          abortonclose
    option          redispatch
    option          httplog
    timeout connect 7s
    timeout client  300s
    timeout queue   120s
    timeout server  300s

listen cms 127.0.0.1:18181
    id 3
    balance leastconn
    option          httpchk
    http-check      send-state
    timeout check   10s

    acl cms_edit url_dom xxx.xxx.xxx.xxx
    acl cms_not_ok nbsrv() lt 2
    block if cms_edit cms_not_ok

    server cms_instance1 app:18081 check downinter 10s maxconn 2 rise 1 slowstart 300s
    server cms_instance2 app:18082 check downinter 10s maxconn 2 rise 1 slowstart 300s

2 个答案:

答案 0 :(得分:0)

您可以安装https://pypi.python.org/pypi/Products.LongRequestLogger并检查其日志文件以查看请求卡住的位置。

答案 1 :(得分:0)

我选择禁用对后端Zope服务器的字节范围请求。我已将以下内容添加到haproxy的CMS listen部分。

reqidel ^Range:.*