Wie lösen AWS ELB/EC2 HTTP 503-mit Zeitlimit-Einstellungen?
Ich bin immer in der zeitweiligen, aber regelmäßigen 503-Fehler ("Service Unavailable: Back-end server is at capacity") von einer Seite, bestehend aus 2 t2.Mittel-instances hinter einem ELB. Keiner unter besonders schwere Last, und alle überwachungs-scheint normal.
AWS docs hier:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html
sagen, dass eine mögliche Ursache ist die nicht übereinstimmende Einstellungen von timeout zwischen der ELB-und EC2s: "legen Sie die keep-alive" - Zeitlimit größer oder gleich dem idle-timeout-Einstellungen von Ihrem load balancer"
Apache conf auf dem EC2s hat:
- KeepAlive Auf
- MaxKeepAliveRequests 100
- KeepAliveTimeout 5
Idle timeout auf die load-balancer ist 60 Sekunden.
Dies würde scheinen, um dann eine Ursache sein, aber ich bin mir nicht sicher über das Update. Die Erhöhung der KeepAliveTimeout Apache nicht - ich verstehe - in der Regel empfohlen, und ich bin genauso unsicher über die Wirkung, die Verringerung der idle-timeout auf dem ELB auf die Website-performance.
Was ist die empfohlene Vorgehensweise? Wie bekomme ich eine Idee von dem, was die idealen Einstellungen sind für mein setup und der Art des Verkehrs-Ebene (derzeit etwa 30 bis 50 Anfragen/min) befasst sich mit?
- Die Erhöhung der apache-timeout sollte in Ordnung sein, hinter ELB, weil ELB hält die verbindungen, die anstelle der Browser hält Sie direkt. Versuchen Sie es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde niedriger die idle-timeout-in der ELB. Kunden müssen zur Eröffnung neuer verbindungen mehr oft, aber seine nur etwas langsamer als die Wiederverwendung einer keepalive-Verbindung.
Erhöhung der keepalive-60 Apache würde auch fix die 503, aber Sie müssen vorsichtig sein, nicht zu laufen von verbindungen oder-Speicher, insbesondere mit prefork mpm, weil Sie bekommen eine Menge mehr slots verwendet keepalive. Verwenden worker mpm (oder event mpm, wenn Sie nicht Angst vor der "Dieses MPM ist noch experimentell" - Warnung), stellen Sie sicher, dass hoch genug ist MaxClients, um allen Anfragen aber niedrig genug, um nicht von memo.