私たちは最近、約10年前のボックスからAWS EC2にウェブサーバーを移動しました。
現在、サイトの使用率は高く(繁忙期です)、サイトの速度は非常に遅くなっています。これは、インスタンスのサイズが以前よりもはるかに大きいため、予想外です。
一度に数百しか取得しないかなり小さなサイトを運営しています。 Webサーバーでc3.largeインスタンスを実行しており、RDS MySQLデータベースでdb.m1.largeを実行しています。リードレプリカや複数のウェブサーバー(負荷分散)はありません。 Google Analyticsによると、1日あたりのページビューは18,106しかありませんでした。
私たちのユーザー(外部および内部)は、ブラウザーでサイトのタイムアウトを確認し続けます。これは、特定のページではなく、ほぼ全体に適用されます。 MySQL PROCESS LISTも、テーブルロックなどがないとほとんど空です。
CloudWatchで統計情報を見ると、すべて問題ないはずです。 CPU使用率が非常に高く、ネットワークI/Oがかなり低いと思います。同様に、RDS側では、「ボトルネック」を叫んでいるものはありません。
EC2の使用法(c3.large)
RDSの使用法(db.m1.large)
この問題のトラブルシューティングについてどのようにすればよいですか?
最後に、問題の原因を突き止めました。 Apacheは、キープアライブタイムアウトが30秒間になるように誤って設定されていました。これが過度に攻撃的なAJAXスクリプトと組み合わされたため、サイトがハングし、接続を待機していました。
KeepAliveTimeout
を7に減らし、AJAXスクリプトを使いこなすことで、すべてが正常に戻りました。