測試 Azure VM 之間的網路延遲

警告

本文參考 CentOS,這是接近結束生命週期 (EOL) 狀態的 Linux 發行版本。 請據以考慮您的使用和規劃。 如需詳細資訊,請參閱 CentOS 生命週期結束指引

本文說明如何使用公開可用的工具 Latte (適用於 Windows) 或 SockPerf (適用於 Linux) 來測試 Azure 虛擬機器 (VM) 之間的網路延遲。

為了獲得最準確的結果,您應該使用專為該工作設計的工具來測量 VM 網路延遲,並排除其他類型的延遲 (例如應用程式延遲)。 Latte 和 SockPerf 可透過專注於傳輸控制通訊協定 (TCP) 和使用者資料包通訊協定 (UDP) 流量來提供最相關的網路延遲結果。 大部分的應用程式都使用這些通訊協定,而且此流量對應用程式效能的影響最大。

許多其他常見的網路延遲測試工具 (例如 Ping) 不會測量 TCP 或 UDP 流量。 Ping 之類的工具會使用網際網路控制訊息通訊協定 (ICMP),而應用程式不使用這種通訊協定。 ICMP 流量的處理方式與應用程式流量不同,不會影響應用程式效能。 ICMP 測試結果不會直接套用至使用 TCP 和 UDP 的工作負載。

Latte 和 SockPerf 只會測量 TCP 或 UDP 酬載傳遞時間。 這些工具使用下列方法來測量兩台實體或虛擬電腦之間的網路延遲:

  1. 將一台電腦指定為傳送者,並將另一台電腦指定為接收者,以在電腦之間建立雙向通訊通道。
  2. 雙向傳送和接收封包,並測量來回行程時間 (RTT)。

最佳化網路延遲的秘訣和最佳做法

若要針對網路延遲最佳化 VM,請在建立 VM 時遵循下列建議:

使用下列最佳做法來測試和分析網路延遲:

  1. 一旦您完成部署、設定和最佳化網路 VM,請在已部署的 VM 之間進行基準線遲測量以建立基準。

  2. 測試變更下列任何元件對網路延遲的影響:

    • 作業系統 (OS) 或網路堆疊軟體,包括組態變更。
    • VM 部署方法,例如部署至可用性區域或鄰近放置群組 (PPG)。
    • VM 屬性,例如加速網路或大小變更。
    • 虛擬網路設定,例如路由或篩選變更。
  3. 始終將新的測試結果與基準線或受控變更之前的最新測試結果進行比較。

  4. 每當您觀察或部署變更時,請重複測試。

使用 Latte 或 SockPerf 測試 VM

使用下列程序來安裝 Latte (適用於 Windows) 或 SockPerf (適用於 Linux) 並用它們來測試網路延遲。

安裝 Latte 並設定 VM

  1. 最新版本的 latte.exe 下載至兩台 VM,並放入個別的資料夾,例如 c:\tools

  2. 接收者 VM 上,建立 Windows Defender 防火牆 allow 規則以允許 Latte 流量到達。 透過名稱允許 latte.exe 程式比允許特定的輸入 TCP 連接埠更容易。 在命令中,將 <path> 預留位置取代為您下載 latte.exe 的路徑,例如 c:\tools\

    netsh advfirewall firewall add rule program=<path>latte.exe name="Latte" protocol=any dir=in action=allow enable=yes profile=ANY
    

在 VM 上執行 Latte

從 Windows 命令列執行 latte.exe,而不是從 PowerShell 執行。

  1. 在接收者 VM 上,執行下列命令 (將 <receiver IP address><port><iterations> 預留位置取代為您自己的值)。

    latte -a <receiver IP address>:<port> -i <iterations>
    
    • 大約 65,000 次反覆運算便足以傳回代表性的結果。
    • 任何可用的連接埠號碼均可。

    下列範例顯示針對 IP 位址為 10.0.0.4 的 VM 的命令:

    latte -a 10.0.0.4:5005 -i 65100

  2. 傳送者 VM 上,執行與接收者 VM 上相同的命令,但新增 -c 來指示用戶端 或傳送者 VM。 再次將 <receiver IP address><port><iterations> 預留位置取代為您自己的值。

    latte -c -a <receiver IP address>:<port> -i <iterations>
    

    例如:

    latte -c -a 10.0.0.4:5005 -i 65100

  3. 等候結果。 根據 VM 之間的距離,測試可能需要幾分鐘的時間才能完成。 請考慮先使用較少的反覆運算來測試是否成功,然後再執行較長的測試。

下一步