Use iperf3 to test localhost latency

Posted by William Basics on Monday, November 14, 2022

为什么要测试本地延迟?

我们常常会使用本地网址来实现同一主机上进程间的通信。通过localhost的进程间通信一方面为我们解耦系统提供了便利。但是一切便利皆有代价,相比于缓存或者内存的访问,系统在性能上必然遭受损失。因此,我们在做这个取舍时,就会特别关心这个本地延迟到底会不会成为我们架构设计上的拦路虎。

iperf3是什么?

iperf是用于网络性能测量和调整的工具。它是一个跨平台的工具,可以为任何网络产生标准化的性能测量。iperf具有客户端和服务器功能,可以创建数据流来测量两端之间的一个或两个方向的吞吐量。 - Wikipedia

iperf的官网和github地址

https://iperf.fr/

https://github.com/esnet/iperf

下载地址

https://iperf.fr/iperf-download.php

如何测试本地延迟

下载完iperf之后,我们可以调用以下命令来启动测试。

> cd path/to/iperf_dir
> .\iperf3 -s & .\iperf3 -c localhost

测试环境是Windows 10 64bit。Shell是PowerShell。得到的结果如下

powershell-output-image

带宽是16.3Gbits/sec

把G展开 ≈ 17,501,991,731 bits/sec

换算成字节 ≈ 2,187,748,966 bytes/sec

换算成毫秒 ≈ 2,187,748.966 bytes/ms

换算成微秒 ≈ 2,187.748966 bytes/us

结论:在我的这台笔记本电脑上,通过localhost可以传递大约每微秒2千字节的数据。

大家有兴趣的话,可以自己测试一下。

🔚