分享方式:


使用 NTTTCP 測試 VM 網路輸送量

本文描述如何使用 Microsoft 的免費 NTTTCP 工具,在 Azure Windows 或 Linux 虛擬機器 (VM) 上測試網路頻寬和輸送量效能。 NTTTCP 之類的工具會以網路為目標進行測試,並將可能會影響效能的其他資源使用降至最低。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • Azure 中的兩部 Windows 或 Linux 虛擬機器。 建立 Windows VM建立 Linux VM
    • 若要測試輸送量,您需要兩部大小相同的 VM,才能做為傳送者接收者運作。 這兩個 VM 應該位於相同的鄰近放置群組可用性設定組中,以便您可以使用其內部 IP 位址,並從測試中排除負載平衡器。
    • 記下要於命令中使用的 VM 核心數目和接收者 VM IP 位址。 傳送者和接收者命令都會使用接收者的 IP 位址。

注意

您可以使用虛擬 IP 進行測試,但此方式不在本文的範圍內。

本文中使用的範例

設定
接收者 VM IP 位址 10.0.0.5
VM 核心數目 2

使用 Windows VM 或 Linux VM 測試輸送量

您可以使用 NTTTCP 測試來自 Windows VM 的輸送量或使用 NTTTCP-for-Linux 測試來自 Linux VM 的輸送量。

準備 VM 並安裝 NTTTCP-for-Windows

  1. 在傳送者和接收者 VM 上,將最新版本的 NTTTCP 下載到個別的資料夾,例如 c:\tools

  2. 開啟 Windows 命令列,並瀏覽至您下載 ntttcp.exe 的資料夾。

  3. 在接收者 VM 上,建立 Windows 防火牆 allow 規則,以允許 NTTTCP 流量到達。 依名稱允許 nttcp.exe 比允許特定輸入 TCP 連接埠更容易。 執行下列命令,將 c:\tools 取代為您的 ntttcp.exe 下載路徑 (如果不同)。

    netsh advfirewall firewall add rule program=c:\tools\ntttcp.exe name="ntttcp" protocol=any dir=in action=allow enable=yes profile=ANY
    
  4. 若要確認您的設定,請使用下列命令,在接收者和傳送者虛擬機器上測試單一傳輸控制通訊協定 (TCP) 資料流 10 秒:

    接收者 VM

    ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1

    ntttcp -r -m 4,*,10.0.0.5 -t 10 -P 1
    

    傳送者 VM

    ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 10 -P 1

    ntttcp -s -m 4,*,10.0.0.5 -t 10 -P 1
    

    注意

    僅使用上述命令來測試設定。

    提示

    當您第一次執行測試以驗證設定時,請使用簡短的測試持續時間來取得快速的回饋。 驗證工具如預期般運作之後,請將測試期間延長到 300 秒以獲得最精確的結果。

執行輸送量測試

在傳送者和接收者 VM 上執行測試 300 秒或五分鐘。 傳送端和接收端必須為 -t 參數指定相同的測試持續時間。

  1. 在接收者 VM 上,執行下列命令,並以您自己的值取代 <number of VM cores><receiver IP address> 預留位置。

    ntttcp -r -m [<number of VM cores> x 2],*,<receiver IP address> -t 300

    ntttcp -r -m 4,*,10.0.0.5 -t 300
    
  2. 在傳送者 VM 上,執行下列命令。 傳送者和接收者命令的差別只在於指定傳送者或接收者 VM 的 -s-r 參數。

    ntttcp -s -m [<number of VM cores> x 2],*,<receiver IP address> -t 300

    ntttcp -s -m 4,*,10.0.0.5 -t 300
    
  3. 等候結果。

測試完成時,輸出應該類似下列範例:

C:\tools>ntttcp -s -m 4,*,10.0.0.5 -t 300
Copyright Version 5.39
Network activity progressing...


Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0  300.006        29617.328     65536.000
     1  300.006        29267.468     65536.000
     2  300.006        28978.834     65536.000
     3  300.006        29016.806     65536.000


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
    34243.000000     300.005       1417.829          114.141


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             1826.262       7.036    547888.000


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     4218.744         1.708        6055.769          1.190


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
    25324915          2161992       60412      0     15.075

測試 Windows VM 與 Linux VM 之間的輸送量

若要在 Windows VM 與 Linux VM 之間執行 NTTTCP 輸送量測試,請在 Windows 上使用 -ns 旗標或在 Linux 上使用 -N 旗標來啟用無同步模式。

若要使用 Windows VM 做為接收者進行測試,請執行下列命令:

ntttcp -r -m [<number of VM cores> x 2],*,<Linux VM IP address> -t 300

若要使用 Windows VM 做為傳送者進行測試,請執行下列命令:

ntttcp -s -m [<number of VM cores> x 2],*,<Linux VM IP address> -ns -t 300

下一步