暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用 iPerf 测试 Azure VM 之间的网速

汪宇杰博客 2020-07-27
370


点击上方关注“汪宇杰博客” ^_^


导语

以往提到测网速,大家可能想到的都是用著名的 speedtest 等工具测试互联网连接速度。但实际上仅仅测试互联网连接速度并不可靠,在部分应用场景里网速还受到服务器之间的连接速度影响,因此清楚你的网络性能瓶颈再哪个环节非常关键。而 iPerf 是一款专业的网速测试工具,可以用来测试局域网或互联网上两台机器之间的网络连接速度,让你更了解每个环节的网络性能。

测试过程


假设需要测试主机 A 到 B 的连接速度。我们需要在 A、B 两台机器上都安装 iPerf 软件(最新版叫做 iPerf3)。iPerf 软件本身不区分客户端和服务端,它通过不同参数来扮演客户端或服务端的角色。我们需要在服务器 B 上启动服务端,在服务器 A 上启动客户端,并发起对 B 的连接,以测试网络速度。

安装 iPerf3


iPerf3 可以安装到 Windows 以及大多数主流 Linux 系统中。以 Ubuntu Server 为例,通过 apt 即可安装 iPerf3:

sudo apt install iperf3

我们需要在服务器 A 和服务器 B 上都安装 iPerf3。

打开被测端口


我们要测试的是主机 A 到主机 B 的连接速度,数据包从 A 发到 B,因此需要在主机 B 上打开 iPerf3 的端口,以允许连接。

在 Azure 上打开主机 B 的管理界面,进入 "Networking",添加 TCP 5001 及 5201 端口。其中 5001 对应 iperf,5201 对应 iperf3。如果你只用iperf3,也可以只开放 5201 端口。

iPerf 3 的端口也可以通过 -p 参数指定。同样,指定端口后,也得记得在 Azure 上打开对应的端口。

准备被测主机


在被测主机 B 上运行:

iperf3 -s

-s 参数就是 server 的意思。表示该主机上的 iperf3 扮演服务端角色,在默认端口 5201 上等待连接。

准备客户端主机


在主机 A 上运行:

iperf3 -c <主机 B IP地址> -p 5201 -t 10

其中,-p 表示指定端口号,不写即采用默认端口 5201。-t 表示测试时间,我这里指定为10秒。

命令执行后即开始测试,我们可以在主机 A 的输出中看到每一次请求的数据大小以及网速。并在测试结束后看到平均网速。

此处我的主机 A 为 Azure 中国版(世纪互联)China East 2 的 VM,主机 B 为 Azure 国际版 East Asia 的 VM。

注意单位是 bits 与 bytes。bits 是位,bytes 是字节。一般宽带运营商的单位为 Mbps,要除8才能转换到 MB/s。

在测试的同时,被测主机 B 也会有同样的数据输出:

可以发现中国版 Azure 到国际版香港地区的连接速度在 13MB/s 左右。

用同样的办法也可以测试同一个数据中心里两台 VM 的网速,例如两台 Azure 国际版 East Asia 地区的 VM,网速为 1GB/s:

了解更多


iPerf 工具还有更多参数可以灵活应对各种企业场景。可以参考官方文档:

https://iperf.fr/iperf-doc.php#3doc





汪宇杰博客

Azure | .NET | 微软 MVP

无广告,不卖课,做纯粹的技术公众号

喜欢本篇内容请点个在看

文章转载自汪宇杰博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论