HTTP ロードバランスの TTFB の増加

HTTP ロードバランスの TTFB の増加

私たちはアムステルダムに独自のラック、Leaseweb を持っています。

私たちは、3 台の Windows 2019 IIS サーバーを使用して HTTP ロード バランシング (Cloudflare 経由) を実行します。

  • サーバー 1: ベアメタル Supermicro サーバー。IIS、MySQL8、Redis を実行します。
  • サーバー 2: Dell サーバー上の VM。IIS を実行します。
  • サーバー 3: Dell サーバー上の VM (サーバー 2 の正確なコピー)。IIS を実行します。

ファイルはすべての原因でローカルに提供されます(レプリケーション経由)

問題はTTFBがサーバー上でローカルに測定サーバー 2 とサーバー 3 (VM) では高くなります。

Chrome を使用してローカルで (複数の) テストを実行する:

サーバー1:

  • 待機時間 (TTFB): 269ms
  • 待機時間(TTFB):255ミリ秒
  • 待機時間(TTFB):253ms

サーバー2:

  • 待機時間 (TTFB): 379ms
  • 待機時間(TTFB):376ms
  • 待機時間 (TTFB): 369ms

サーバー3:

  • 待機時間(TTFB):374ms
  • 待機時間 (TTFB): 381ms
  • 待機時間 (TTFB): 378ms

ご覧のとおり、サーバー 1 の TTFB は大幅に低くなっています。CPU に関しては、サーバー 2 と 3 の方が実際には高速です。

PHP ベンチマーク スクリプト

サーバー1 合計時間: : 4.022 秒。

サーバー2 合計時間: : 2.866 秒。

サーバー3 合計時間: : 2.936 秒。

すべてのサーバーの I/O はほぼ同じです。すべてのサーバーに、ハードウェア RAID コントローラーを備えた新しい SSD が搭載されています。

追加の遅延が Redis から発生しているかどうかを確認するために、Redis を VM の 1 つに移動してテストしましたが、違いはまったくありませんでした。

私の推測では、TTFB の余分なレイテンシは、サーバー 1 で実行されている MySQL から生じているのでしょうか? 同じサーバーで MySQL を実行すると、CPU が遅くなっても、TTFB は大幅に小さくなります。

これを回避する方法はありますか?

実際、適切な質問は、余分な遅延の原因をどのように特定できるかということです。

関連情報