時間:2024-04-20 11:25:58 作者:泰龍 瀏覽量:52
iPefr 是 ESnet 推出和維護的一款知名網絡測試工具,Windows 網絡和調試工程師詹姆斯凱爾今天在 Microsoft TechNet 社區發文,建議用戶不要使用 iPefr3,而是應該使用微軟開發和維護的 ntttcp 或 ctsTraffic。
為什么不推薦用戶使用 iPerf3 呢?微軟工程師給出了三個原因,簡單來說就是 iPerf3 并不直接兼容 Windows 系統,因此實際表現并不好。

原因一:不支持 Windows
ESnet 不建議用戶在 Windows 上使用 iPerf3,因為該工具本身就不支持 Windows,ESnet 建議如果用戶確實有需要應該使用 iPerf2。
iPerf3 主要基于 CentOS Linux、FreeBSD 和 macOS 開發,這也是 ESnet 官方支持的主要平臺。
出于同樣的不支持原因,微軟不建議用戶在 Windows 系統上使用 iPerf3。
原因二:不支持 Windows API
iPerf3 不調用 Windows 本機 API,因為它主要通過 Linux/POSIX 調用,iPerf3 社區使用 Cygwin 作為模擬層讓 iPerf3 在 Windows 上運行。
當調用被發送到 Cygwin 時,后者將其轉換為 Windows API,只有這樣才能實現在 Windows 上檢測網絡堆棧,盡管這樣做能用,但有些高級功能表現并不好,例如降低性能、操作延遲等。
最重要的是 iPerf3 使用不常見的 winsock (Windows Socket) 選項,對于通用吞吐量測試還行,但測試應用程序的話,winsock 無法模擬現實世界中 Windows 軟件的運行情況。
原因三:用戶使用的還是舊版 iPerf3
ESnet 提供的 iPerf3 最新版本為 3.16 版,但如果用戶在搜索引擎 (包括必應上) 檢索 iPerf3 for Windows 時,排在前面的是 iPerf.fr 網站,這個網站提供的版本是 3.1.3 版,而此版本還是 8 年前發布的,與 3.16 版之間相差 15 個版本。
這 15 個版本包含大量的錯誤修復和功能改進,但由于用戶使用的是舊版本,而且 iPerf.fr 提供的版本中包含 cygwin1.dll,這會導致 winsock 緩沖區被限制在 1MB,在高速、高延遲和高帶寬網絡上性能不佳,因為無法傳輸足夠多的數據導致測試不準確。
因此如果用戶確實需要使用 iPerf3,請通過 ESnet 官網下載。
推薦用戶使用微軟維護的測試工具:
詹姆斯凱爾向開發者和網絡工程師推薦 ntttcp 和 ctsTraffic,這兩個都是微軟維護的綜合網絡基準測試工具,其中最新版 ntttcp 在 GitHub 上開源,兼容 Windows 和 Linux 系統,也就是說可以測試不同的系統組合,例如 Windows – Windows、Windows -Linux、Linux – Windows 以及 Linux – Linux。
ctsTraffic 僅限于 Windows – Windows 測試,專注于端到端的良好吞吐量場景,開發者可以根據需要進行選擇。
原文地址:https://techcommunity.microsoft.com/t5/networking-blog/three-reasons-why-you-should-not-use-iperf3-on-windows/ba-p/4117876+
.