
約 20 万人のユーザーがいるアプリケーションがあり、AWS EC2 ロードバランサーの背後で NGINX + Gunicorn (Python) サーバーを実行しています。
リクエストが常に 4k/分であるのに、トラフィックの半分がタイムアウトの問題になるのは時々だけである理由がわかりません。ほとんどの場合、すべてのリクエストは問題ありませんが、時々ロックし始め、ほぼすべてのリクエストがタイムアウトになります。
現在の接続数のこのパターンには波があり、1000 から 0 まで変動していることに気付きました。NGINX は何らかの方法でリクエストをバンドルしていますか? request_time を区別して、NGINX が適切に構成されていないのか、Python サーバーで非常に遅いエンドポイントが頻繁に呼び出されているだけなのかを判断するにはどうすればよいでしょうか。
NGINX Amplify ダッシュボードにあるサーバーの 1 つのスクリーンショットを添付しました。
これが NGINX 構成の問題なのか、ホストされている Python プロセスがロックされているのかを判断するために調査できる NGINX ログまたは Amplify の部分について何かアイデアはありますか? ありがとうございます!
答え1
CloudWatch メトリクス、特に「ドロップ」または「失敗」に関するメトリクスを確認してください。ロードバランサーと EC2 インスタンスに関するすべての詳細がそこに表示されます。使用しているインスタンス タイプが何であるかはわかりませんが、T2/T3 インスタンスを常に過剰に使用してクレジットが不足している可能性があります。フローの一部が何らかの理由で調整されていると思いますが、必ずしもインスタンス自体の問題ではありません。