AWSロードバランサーの背後に5つのt1.micro EC2をセットアップしました。
すべてのインスタンスは、LBに接続されると速度が低下します。 10個のリクエストのうち8個は、インスタンスに直接リクエストを送信しても(LBをバイパスして)30秒以上かかります。インスタンスのCPU負荷は問題ではないようです。 LBからインスタンスの1つを削除すると、正常に応答します。 LBに追加されるとすぐに、要求は再び遅くなります。
LBが接続された後、インスタンスの応答が非常に遅くなる理由について誰かが私にいくつかの手掛かりを与えることはできますか?
前もって感謝します
(おそらく)長いキープアライブヘッダーが原因で、ELBでリクエストがキューに入れられているように聞こえます。 ELBは、Keep-Aliveヘッダーを尊重することにより、バックエンドへの接続数を最小限に抑えようとします。
短い(または無効な)キープアライブは、バックエンドノードに着信接続を処理するための空きリソースがある場合、ELBにリクエストごとにバックエンドへの単一の接続を開くように強制します。キープアライブが長いと、バックエンド接続が減少し、ELBが要求を可能な限りシリアル化するように強制されます。これにより、要求が他の処理を待機する可能性があります。
負荷テスト中にCloudwatchでELBキューを確認し、バックエンドがアイドル状態のときにELBキューが大きくなる場合は、接続ごとのリクエスト数を減らし、キープアライブタイムアウトを減らしてみてください。正確な値は、アプリケーションの要件によって異なります。
PS:t1.microは悪PS(2):粘着性は悪