微软网络工程师建议用户不要使用iPerf3工具 因为在Windows上并不好

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

iPerf3不适用于Windows系统,原因是它不支持Windows ESnet和Windows API,而且用户通常使用旧版本。建议使用微软维护的ntttcp和ctstTraffic进行网络测试。

🔎

延伸解读

iPerf3 在 Windows 上的兼容性缺陷

iPerf3 主要基于 Linux、FreeBSD 和 macOS 开发,官方并不支持 Windows。在 Windows 上运行时,它依赖 Cygwin 模拟层将 POSIX 调用转换为 Windows API,这会导致性能下降和延迟增加。此外,iPerf3 使用不常见的 winsock 选项,虽然能进行通用吞吐量测试,但无法模拟真实 Windows 应用程序的网络行为,因此测试结果可能不具代表性。

旧版本带来的测试误差

许多用户通过搜索引擎获取的 iPerf3 for Windows 仍是 8 年前的 3.1.3 版,而最新版为 3.16,中间相差 15 个版本,包含大量错误修复和功能改进。旧版本捆绑的 cygwin1.dll 会将 winsock 缓冲区限制在 1MB,在高速、高延迟和高带宽网络中无法传输足够数据,导致测试结果不准确。建议从 ESnet 官网下载最新版。

微软推荐的替代工具

微软工程师推荐使用 ntttcp 和 ctsTraffic 进行网络基准测试。ntttcp 在 GitHub 上开源,兼容 Windows 和 Linux,支持 Windows-Windows、Windows-Linux、Linux-Windows 及 Linux-Linux 等多种组合测试。ctsTraffic 则仅限于 Windows-Windows 测试,专注于端到端的良好吞吐量场景。开发者可根据测试需求选择合适工具。

❓

Q&A

为什么不建议在Windows上使用iPerf3?

因为iPerf3不支持Windows系统,且性能表现不佳。

iPerf3在Windows上有哪些性能问题?

iPerf3通过Cygwin模拟层运行,导致性能和延迟问题,且不调用Windows API。

用户常用的iPerf3版本是什么?

很多用户仍在使用8年前的3.1.3版本,而最新版本是3.16。

推荐使用哪些工具替代iPerf3?

建议使用微软维护的ntttcp和ctstTraffic进行网络测试。

ntttcp和ctstTraffic有什么区别?

ntttcp兼容Windows和Linux,而ctstTraffic仅限于Windows测试。

如何确保使用最新版本的iPerf3?

用户应通过ESnet官网下载最新版本,以避免使用旧版。

🏷️

标签

➡️

继续阅读