我需要测量 Amazon EC2 Windows 实例之间的网络带宽。该怎样做?

有若干因素可能影响 Amazon EC2 网络性能,包括:

  • EC2 实例的物理邻近度,以降序列出:
    • 同一可用区中的实例
    • 相同区域的不同可用区中的实例
    • 相同大洲的不同区域中的实例
    • 不同大洲的不同区域中的实例
  • EC2 实例最大传输单位 (MTU)。EC2 实例的默认接口配置使用巨型帧 (9001 MTU),它可以在单个 Virtual Private Cloud (VPC) 中实现更大的吞吐量。但是,在单个 VPC 之外,最大的 MTU 为 1500 或更低,这就要求中间系统对较大数据包进行分段。因此,9001 的默认 MTU 值可能效率不高,它会导致比网络吞吐量上实现的节省更高的处理开销,尤其当大部分都是 Internet 网络流量时更是如此。可配置为使用巨型帧的实例类型包括 CC2、C3、R3、CG1、CR1、G2、HS1、I2、T2 和 M3。有关更多信息,请参阅实例类型
  • EC2 实例大小。特定实例类型的较大实例大小通常能提供比相同类型较小实例大小更高的网络性能。
  • EC2 增强了对 Windows 的联网支持,但 T2 和 M3 实例类型除外。
  • EC2 高性能计算 (HPC) 支持使用置放群组。HPC 提供完全等分的带宽和低延迟,支持 10 GB 网速。有关更多信息,请参阅将实例启动到置放群组中。请参阅实例类型矩阵了解每个实例类型的网络性能。

由于这些因素,不同云环境的网络性能通常有很大差异。评估网络性能对云端应用程序的影响的最佳实践包括定期对环境进行网络基准测试。本文介绍在 EC2 Windows 实例之间设置、配置网络并对网络性能进行基准测试的步骤。因为网络性能通常是应用程序性能的关键,测试网络性能可以提供宝贵意见,从而确定最适合需求的 EC2 实例类型、大小和配置。

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

  1. 按照启动 Windows 实例中的步骤操作以启动两个 Windows 实例,以便用来运行网络性能测试。
  2. 为了获得可能的最佳网络性能,请确保这些实例支持 Windows 上的增强联网,在相同 VPC 中启动实例,并按照在 VPC 中的 Windows 实例上启用增强联网
  3. 如果要对并非共存于相同置放群组或不支持极大帧的两个实例执行网络测试,请按照 EC2 实例的网络最大传输单位 (MTU) 中所述步骤操作,在您的 Amazon EC2 实例上检查并设置 MTU
  4. 完成使用 RDP 连接到您的 Windows 实例中的步骤以验证您可以访问这些实例。

通过 RDP 连接到您的 Windows 实例并执行以下操作:

  1. Microsoft TechNet NTttcp 下载页面下载 NTttcp-v5.31.zip。
  2. 将该文件的内容解压到一个文件夹。
  3. 使用管理员权限打开命令提示符窗口,将目录切换到解压 NTttcp-v5.31.zip 的文件夹。
  4. 在开始运行 NTttcp 之前,将目录切换到名称与 EC2 Windows 实例的架构匹配的文件夹。

默认情况下,当测试 TCP 性能时,NTttcp 通过端口 5001 进行通信;不过此端口可使用 -p 开关进行配置。请确保安全组配置为允许通过 NTttcp 将使用的端口进行通信。另外,在接收方和发送方都配置允许 NTttcp.exe 连接的入站和出站 Windows 防火墙规则。

  1. 将一个实例配置为接收方/服务器从默认端口 5001 开始初始化侦听器,或使用 -p 开关指定备用初始侦听器端口。例如,以下命令将一个双线程 (第一个线程在 CPU 0 上运行,第二个线程在 CPU 1 上运行) 接收方初始化为侦听指定 IP 地址的端口 80-81。命令下方对此示例中使用的所有 ntttcp.exe 接收方参数进行了介绍:
         ntttcp -r -p 80 -a 6 -t 60 -cd 5 -wu 5 -v -xml c:\bench.xml -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — receive
         • -p 80 - 第一个线程用来接收数据的端口;端口号随每个增加的接收方线程递增
         • -a 6 - 每个线程发布 6 个接收重叠缓冲区的异步数据传输
         • -t 60 - 以秒为单位的测试持续时间
         • -cd 5 - 5 秒测试冷却时间
         • -wu 5 - 5 秒测试预热时间
         • -v - 指定详细测试输出
         • -xml - 将测试输出保存到指定文件(默认保存到 xml.txt)
         • -m - 每一节指定 3 个映射参数(线程编号、CPUID、接收方 IP 地址);多节之间用空格分隔
  2. 使用所需参数,将第二个实例配置为发送方/客户端,对接收方运行测试。例如,以下命令将一个双线程 (第一个线程在 CPU 0 上运行,第二个线程在 CPU 1 上运行) TCP 发送方初始化为侦听指定 IP 地址的端口 80-81。命令下方对此示例中使用的所有 ntttcp.exe 发送方参数进行了介绍:
         ntttcp -s -p 80 -a -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s - 发送
         • -p 80 - 第一个线程用来发送数据的端口;此端口号随每个增加的发送线程递增
         • -a - 每个线程使用默认值为 2 的异步发送重叠缓冲区;如果需要可指定非默认值
         • -t 60 - 以秒为单位的测试持续时间
         • -cd 5 - 5 秒测试冷却时间
         • -wu 5 - 5 秒测试预热时间
         • -m - 每一节指定 3 个映射参数(线程编号、CPUID、目标 IP 地址);多节之间用空格分隔

接收方生成的 xml 输出应类似以下内容:在此测试中,总利用带宽大约为 9.02 Gb/s。

bandwidth-tcp

默认情况下,当测试 UDP 性能时,NTttcp 通过端口 5001 进行通信;不过此端口可使用 -p 开关进行配置。请确保安全组配置为允许通过 NTttcp 将使用的端口进行通信。另外,在接收方和发送方都配置允许 NTttcp.exe 连接的入站和出站 Windows 防火墙规则。

  1. 将一个实例配置为接收方/服务器从默认端口 5001 开始初始化侦听器,或使用 -p 开关指定备用初始侦听器端口。例如,以下命令将一个双线程 (第一个线程在 CPU 0 上运行,第二个线程在 CPU 1 上运行) 接收方初始化为侦听指定 IP 地址的端口 80-81。命令下方对此示例中使用的所有 ntttcp.exe 接收方参数进行了介绍:
         ntttcp –r –u -p 80 –t 60 –cd 5 –wu 5 –v –xml c:\bench.xml –m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — receive
         • -u - 测试 UDP
         • -p 80 - 第一个线程用来接收数据的端口;端口号随每个增加的接收方线程递增
         • -t 60 - 以秒为单位的测试持续时间
         • -cd 5 - 5 秒测试冷却时间
         • -wu 5 - 5 秒测试预热时间
         • -v - 指定详细测试输出
         • -xml - 将测试输出保存到指定文件(默认保存到 xml.txt)
         • -m - 每一节指定 3 个映射参数(线程编号、CPUID、接收方 IP 地址);多节之间用空格分隔
  2. 使用所需参数,将第二个实例配置为发送方/客户端,对接收方运行测试。例如,以下命令将一个双线程 (第一个线程在 CPU 0 上运行,第二个线程在 CPU 1 上运行) UDP 发送方初始化为侦听指定 IP 地址的端口 80-81。命令下方对此示例中使用的所有 ntttcp.exe 发送方参数进行了介绍:
         ntttcp -s –u -p 80 -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s - 发送
         • -u - 测试 UDP(默认为测试 TCP)
         • -p 80 - 第一个线程用来发送数据的端口;此端口号随每个增加的发送线程递增
         • -t 60 - 以秒为单位的测试持续时间
         • -cd 5 - 5 秒测试冷却时间
         • -wu 5 - 5 秒测试预热时间
         • -m - 每一节指定 3 个映射参数(线程编号、CPUID、目标 IP 地址);多节之间用空格分隔

接收方生成的 xml 输出应类似以下内容:

bandwidth-udp

要快速查看可用于 NTttcp 的所有选项,请从命令提示符窗口运行 ntttcp。

有关可用于 NTttcp 的选项的更多信息,请参阅 NTttcp 下载文件中包含的 TCP_Tool.docx Word 文件,并查看 Microsoft TechNet NTttcp 下载页面上 NTttcp 的最新更新。

Amazon EC2 Windows, 网络, 性能, 放置群组, HPC, 吞吐量, NTttcp, MTU, VPC, UDP, TCP


此页面对您有帮助吗? |

返回 AWS Support 知识中心

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