HTTP 負載平衡中增加了 TTFB

HTTP 負載平衡中增加了 TTFB

我們在阿姆斯特丹有自己的機架,Leaseweb。

我們使用 3 台 Windows 2019 IIS 伺服器進行 HTTP 負載平衡(透過 Cloudflare):

  • 伺服器 1:裸機超微伺服器。運行 IIS、MySQL8 和 Redis。
  • 伺服器 2:戴爾伺服器上的虛擬機器。運行 IIS。
  • 伺服器 3:戴爾伺服器上的虛擬機器(伺服器 2 的精確副本)。運行 IIS。

這些文件在所有原因中都在本地提供(透過複製)

現在的問題是 TTFB,如在伺服器本地測量伺服器 2 和伺服器 3 (VM) 上的值較高。

使用 chrome 在本地運行(多個)測試:

伺服器1:

  • 等待(TTFB):269ms
  • 等待(TTFB):255ms
  • 等待(TTFB):253ms

伺服器2:

  • 等待(TTFB):379ms
  • 等待(TTFB):376ms
  • 等待(TTFB):369ms

伺服器3:

  • 等待(TTFB):374ms
  • 等待(TTFB):381ms
  • 等待(TTFB):378ms

正如您所看到的,伺服器一的 TTFB 明顯較低。就CPU而言,伺服器2和3實際上更快:

PHP 基準腳本

Server1 總時間::4.022 秒。

Server2 總時間::2.866 秒。

Server3 總時間::2.936 秒。

所有伺服器的 I/O 大致相同。他們都有帶有硬體 raid 控制器的新 SSD。

我確實測試了將 Redis 移動到其中一台虛擬機,這樣我就可以弄清楚額外的延遲是否來自 Redis,但這並沒有什麼區別。

我的假設是 TTFB 中的額外延遲來自伺服器 1 上運行的 MySQL?即使 CPU 速度較慢,在同一台伺服器上執行 MySQL 也會產生明顯較小的 TTFB。

有解決方法嗎?

實際上,正確的問題是,如何確定額外延遲的原因是什麼?

相關內容