2014-04-14 3 views
1

최근에 업그레이드 된 Plone 4.3.2 인스턴스가 Apache 바로 뒤에있는 haproxy로드 밸런서 뒤에 있습니다.바이트 범위 요청에 응답하는 데 오랜 시간이 걸리는 Plone

우리는 각 Plone 인스턴스를 haproxy 구성을 사용하는 두 개의 동시 요청을 처리하도록 제한합니다.

우리는 최근에 클라이언트가 응답을 얻기 위해 6 ~ 8 분이 걸린 PDF에 대해 4 바이트 범위의 요청을 빠르게 연속적으로 보낸 문제를 발견했습니다. 이로 인해 6 분 동안 사용 가능한 모든 요청이 잠겨서 haproxy가 대기열의 다른 요청을 시간 초과했습니다. PDF는 Plone에 ATFile 개체가 저장되어 있습니다.이 개체는 최근 업그레이드에서 BLOB 저장소로 마이그레이션해야합니다.

제 질문은 향후 유사한 시나리오를 방지하기 위해 어떤 단계를 밟아야합니까? 그렇지 않으면 부하가 적은 서버에서 바이트 범위 요청 바이트와

  • 방법 plone.app.blob 상품 응답 이렇게 오래 걸릴해야하는 이유

    • 어떻게 디버깅 할 :

      나는 또한 관심 - 범위는

    • 이 가능되도록 바이트 범위 요청이 여기에 요청에 따라 백 엔드 서버

    에서의 캐시에서 제공되지 않지만 아파치를 구성하는 것입니다 요청과 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 
    
  • +0

    귀하의 haproxy 구성 설정을 알려주십시오. – SteveM

    +1

    apache + haproxy 프론트 엔드가 아닌 맨 처음 ZServer 인스턴스에 비슷한 요청을 하시거나 시뮬레이션하셨습니까? 제거 과정은 당신 (그리고 당신을 도울 사람들)에게 더 좋은 그림을 줄 것입니다. – sdupton

    +0

    전 Zserver를 통해서만 복제를 시도하지는 않았지만 아직 전체 스택을 복제 할 수 없었습니다. 로그를 확인한 결과 4 개의 성가신 요청이 모두 Zope을 (를) 넘겼습니다. – scarba05

    답변

    0

    바이트 범위 요청을 백 엔드 Zope 서버로 사용하지 않기로 선택했습니다. haproxy의 CMS 수신 섹션에 다음을 추가했습니다.

    reqidel ^Range:.* 
    
    관련 문제