我需要测量位于同一 VPC 中的 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例之间的网络带宽。该怎样做?

此示例仅适用于同一 VPC 中的 EC2 实例。下面是一些可能会影响 Amazon EC2 网络性能的因素:

  • EC2 实例的物理邻近度。 位于同一可用区的实例,在地理上相互最为接近。位于同一区域但在不同可用区的实例、位于同一大洲上不同区域的实例、以及位于不同大洲上不同区域的实例,相互之间的距离越来越远。
  • EC2 实例最大传输单位 (MTU)。EC2 实例如果为巨型帧 (9001 MTU) 中所列的实例大小,则其默认接口配置为使用巨型帧。
  • 您的 EC2 实例大小。 特定实例类型的较大实例大小通常能提供比相同类型较小实例大小更高的网络性能。
  • EC2 增强了对 Linux 的联网支持,T2 和 M3 实例类型除外。
  • 使用置放群组的 EC2 高性能计算 (HPC) 支持。 HPC 提供完全等分带宽和低延迟,最多支持 25Gb 网络速度,具体取决于实例类型。如要了解每个实例类型的网络性能,请参阅实例类型矩阵。有关更多信息,请参阅在置放群组中启动实例

由于这些因素,不同云环境之间的网络性能可能有显著的差异。一项最佳实践是定期评估环境的网络性能并确立基线,从而提高应用程序的性能。测试网络性能可以提供宝贵意见,从而确定最适合您的需求的 EC2 实例类型、大小和配置。

在开始基准测试之前,请启动并配置您的 Linux EC2 实例:

  1. 启动两个 Linux 实例,以便用来运行网络性能测试。
  2. 请注意确保这些实例支持 Linux 增强联网,并且位于同一 VPC 中。
  3. (可选)如果要在位于不同置放群组或不支持巨型帧的实例之间执行网络测试,请按照 EC2 实例的网络最大传输单位 (MTU) 中所述步骤操作,在您的实例上检查并设置 MTU。
  4. 连接到实例以验证您可以访问这些实例。

在两个实例上安装 iperf3 网络基准测试工具

在一些发行版本 (如 Amazon Linux) 中,iperf3 是 EPEL 存储库的一部分。如要启用 EPEL 存储库,请参阅如何为运行 CentOS、RHEL 或 Amazon Linux 的 Amazon EC2 实例启用 EPEL 存储库?

连接到您的 Linux 实例 ,然后运行以下命令以安装 iperf3

如要在 RHEL 6 Linux 主机上安装 iperf3 ,请运行与以下类似的命令:

# yum -y install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  && yum -y install iperf3

如要在 RHEL 7 Linux 主机上安装 iperf3 ,请运行与以下类似的命令:

# yum -y install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  && yum -y install iperf3

如要在 Debian/Ubuntu 主机上安装 iperf3 ,请运行与以下类似的命令:

# apt-get install -y iperf3

如要在 CentOS6/7 主机上安装 iperf3 ,请运行与以下类似的命令:

# yum -y install epel-release && yum -y install iperf3

测试两个实例的 TCP 网络性能

默认情况下,iperf3 在测试 TCP 性能时将通过端口 5201 进行通信。当然,您也可以使用 -p 开关来配置该端口。请确保安全组配置为允许通过 iperf3 使用的端口进行通信。

将一个实例配置为服务器以侦听默认端口,或使用 -p 开关指定备用侦听器端口:

$ sudo iperf3 -s [-p <port number>]

使用所需参数,将第二个实例配置为客户端,对服务器运行测试。例如,下面的命令会使用 10 个并行连接对指定服务器实例启动 TCP 测试:

$ sudo iperf3 -c 192.0.2.0 --parallel 10 -i 1 -t 60 -V [-p <port number>]

使用这些指定的 iperf3 参数,输出将显示每个客户端流的间隔(60 秒)、每个客户端流传输的数据以及每个客户端流使用的带宽。此处显示的 iperf3 输出,是对并置于同一置放群组中(从而提供 HPC 支持)的两个 c4.8xlarge EC2 Linux 实例进行测试生成的。我们将 -t 参数修改为 -t 2 而不是 -t 60,将 --parallel 10 修改为 --parallel 2,以便于在此显示。在所有连接之间传输的总带宽为 9.6Gbps:

Output:
$ iperf3 -c 192.0.2.0 -t 2 -i 1 --parallel 2 -R
Connecting to host 192.0.2.0, port 5201
Reverse mode, remote host 192.0.2.0 is sending
[  4] local 198.51.100.0 port 47122 connected to 192.0.2.0 port 5201
[  6] local 198.51.100.0 port 47124 connected to 192.0.2.0 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   572 MBytes  4.80 Gbits/sec
[  6]   0.00-1.00   sec   572 MBytes  4.80 Gbits/sec
[SUM]   0.00-1.00   sec  1.12 GBytes  9.60 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   1.00-2.00   sec   573 MBytes  4.80 Gbits/sec
[  6]   1.00-2.00   sec   573 MBytes  4.80 Gbits/sec
[SUM]   1.00-2.00   sec  1.12 GBytes  9.61 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-2.00   sec  1.12 GBytes  4.82 Gbits/sec    0             sender
[  4]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec                  receiver
[  6]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec    0             sender
[  6]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec                  receiver
[SUM]   0.00-2.00   sec  2.24 GBytes  9.63 Gbits/sec    0             sender
[SUM]   0.00-2.00   sec  2.24 GBytes  9.63 Gbits/sec                  receiver

iperf Done.

测试两个实例之间的 UDP 网络性能

默认情况下,iperf3 在测试 UDP 性能时将通过端口 5201 进行通信。当然,您使用的端口也可使用 -p 开关进行配置。请确保安全组配置为允许通过 iperf3 使用的端口进行通信。

注意:除非指定了不同的带宽,否则 UDP 的默认值为 1Mbps。

首先,将一个实例配置为服务器以在默认端口上侦听,或使用 -p 开关指定备用侦听器端口:

$ sudo iperf3 -s [-p <port number>]

然后使用所需参数,将第二个实例配置为客户端,对服务器运行测试。例如,下面的命令将在您使用的端口上对指定服务器实例启动 UDP 测试,带宽目标 100Mbps:

$ sudo iperf3 -c 10.0.2.176 [-p <port number>] -u -b 100m

输出显示了间隔(时间)、传输的数据量、实现的带宽、抖动(数据报周期性到达的时间偏差)以及丢失/总 UDP 数据报文数:

[ ID] Interval        Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  3]  0.0-10.0 sec   120 MBytes   101 Mbits/sec  ; 0.005 ms  0/85470 (0%)
[  3]  0.0-10.0 sec   1 datagrams received out-of-order
[  3] Sent 15113 datagrams

此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2015 年 8 月 6 日

更新时间:2019 年 2 月 28 日