2013-01-18 2 views
2

다소 복잡한 상황입니다. 우리는 haproxy 뒤에 앉아있는 16 개의로드 밸런싱 된 서버에서 애플리케이션을 서비스합니다. 우리는 또한 hginxxy로드 밸런서 뒤에 앉아 nginx를 실행하는 다른 서버에서 응용 프로그램과 관련된 이미지를 제공합니다. 우리는이 이미지 서버에서 이미지를 가져 와서 향후 제공하기 위해 캐시하는 글로벌 CDN을 보유하고 있으므로 3 억 개 정도의 이미지를 처리하더라도이 서버의로드가 매우 적습니다.클러스터 과부하를 방지하기 위해 서버를 종료 할 때 시간 초과 이미지가 있습니까?

어제 우리는 이미지 서버에 대한 RAID 배열에서 드라이브를 스왑해야했습니다. 우리가 그것을 무너 뜨 렸을 때, 우리는 이미지의 일부가 더 이상로드되지 않을 것이라고 예상했지만, 대신 우리는 훨씬 더 심각한 문제에 부딪쳤다. 앱 서버에 대한 연결이 급증하여 우리 클러스터에는 아무 것도 제공 할 수 없었습니다. 내 생각에 애플 리케이션 요청은로드 밸런서에 와서, 애플 리케이션 서버에 충돌하고 이미지가 제공되기를 기다리는 동안 거기에 매달렸다. 서버가 다운 된 이후 요청이 계속 들어 왔고 전체 시스템이 폐쇄되었습니다.

나는 미래에 이러한 상황을 피하고 싶습니다. 이 문제에 대한 정상적인 타임 아웃을 설정하는 데 필요한 위치 또는로드 밸런서에서 처리하는 방법에 대한 제안은 무엇입니까? 이런 일이 생기면 평상시처럼 이미지가 없어도 앱이로드되는 것을 선호합니다.

+0

디자이너 대신 이미지 대신 HTML5.Canvas를 사용하는 것이 좋습니다. ;) – hek2mgl

+0

일반적으로 클라이언트 브라우저는 이미지 서버에 액세스합니다. 16 웹 서버 그리드가 아닙니다. 내가 잘못? – hek2mgl

+1

왜이 PHP에 태그를 추가 했습니까? – goat

답변

1

에서 당신이 보일 것입니다 - 그것은 일반적으로 이러한 낮게 설정하는 나쁜 생각

timeout server 50000 
    timeout client 50000 

는 "타임 아웃 연결"한 번만 때문에이 설립했다. 그러나이를 낮추면 설정된 연결에 대한 시간 초과 값이 조정됩니다.

당신은 HTTP 요청을 기다리는 최대 시간을 조정합니다

timeout http-request 

조정

도 있었다.