微软网络工程师建议用户不要使用iPerf3工具 因为在Windows上并不好
内容提要
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官网下载最新版本,以避免使用旧版。