2011-09-01 7 views
2

4 개의 Amazon EC2 인스턴스 (하나의로드 밸런서, 하나의 데이터베이스 및 두 개의 앱)를 사용하며 끊임없이 무작위 시간 초과가 발생합니다. 우리는 적어도 하루에 한 번씩, 때로는 더 많이 얻습니다. 다음은 몇 가지 예는 다음과 같습니다Rails 3.0 intermittent 연결 시간 초과, 실행 만료 오류

Errno::ETIMEDOUT: Connection timed out - connect(2) 
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/net/smtp.rb:546:in `initialize' 

Timeout::Error: execution expired 
[GEM_ROOT]/gems/activemodel-3.0.9/lib/active_model/attribute_methods.rb:354:in `match' 

나는이 그들이 응용 프로그램 코드 나 서버로드 관련이없는 것처럼 디버깅하는 방법을 모르겠어요. CPU 사용률은 대개 10 % 미만이며 가장 큰 스파이크는 최대 60 %입니다. 스파이크는 백업 실행으로 인한 것일 수 있으며 시간 초과 오류가 발생한 시간과 일치하지 않습니다.

이러한 유형의 오류를 어떻게 추적 할 수 있습니까?

+0

두 번째 문제를 추적했습니다. 그것은 응용 문제로 밝혀졌습니다. 루프에 갇혀있는 코드가있어서 문제가 다른 곳에서 있었던 것처럼 보였습니다. 첫번째 것, 나는 아직도 확실하지 않다. –

답변

3

첫 번째 시간 초과는 SMTP를 통해 메일을 보내는 합법적 인 연결 시간 초과 인 것처럼 보입니다. 자신의 SMTP 서버를 호스팅하거나 서비스를 사용하고 있습니까? 우리는 현재 우리의 큐와 이메일에 볼륨을 많이보고있는

짧은 기간 동안 지연 될 수 있습니다 : sendgrid이 experiencing delays/timeouts일 지난 몇 계속 것처럼

보인다. 최신 정보를 기다리십시오. SMTP 서비스 시간 제한 #status

수정/

설정 메일을 개최하고이 같은 오류가있는 경우 보내 다시 로컬 메일 릴레이를 실패합니다. 우리는 프로덕션 환경에서이 문제에 대한 로컬 Postfix 릴레이를 사용합니다. 따라서 ActiveMailer는 메일을 대기열에 넣고 SMTP 릴레이를 통해 Sendgrid로 전달하는 Postfix에 sendmail을 사용합니다.

+0

우리는 Sendgrid를 사용하고 있습니다. –

+0

지난 며칠 동안뿐만 아니라 수십 개의 오류가 발생했습니다. 나는 Sendgrid에 문제를 제기하고 그들이 말하는 것을 보게 될 것이다. –

+0

Raw Rails SMTP를 Sendgrid로 사용하는 경우 메일을 보관할 로컬 메일 릴레이를 설정하고 이와 같은 오류가 발생하면 다시 전송할 수 있습니다. 우리는 프로덕션 환경에서이 문제에 대한 로컬 Postfix 릴레이를 사용합니다. 따라서 ActiveMailer는 메일을 대기열에 넣고 SMTP 릴레이를 통해 Sendgrid로 전달하는 Postfix에 sendmail을 사용합니다. – Winfield