虚拟机网络带宽

Azure 提供各种 VM 大小和类型,并且每一种都提供不同的性能组合。 其中一种是网络吞吐量(也称带宽),以兆位/秒 (Mbps) 表示。 由于虚拟机托管在共享硬件上,因此网络容量必须在共享同一硬件的虚拟机中公平地共享。 在分配时,较大的虚拟机相对于较小的虚拟机会获得相对较多的带宽。

分配给每个虚拟机的网络带宽按虚拟机的传出(出站)流量计算。 从虚拟机流出的所有网络流量均计入分配限制,不管流向哪个目标。 例如,如果虚拟机有 1000-Mbps 的限制,则无论出站流量是发往同一虚拟网络中的其他虚拟机,还是发往 Azure 外部,该限制都适用。

流入量不直接计量或限制。 但是,其他因素(例如 CPU 和存储限制)可能会影响虚拟机的处理传入数据的能力。

加速网络是一项旨在改进网络性能(包括延迟、吞吐量和 CPU 使用率)的功能。 虽然虚拟机的吞吐量可以通过加速网络来改进,但仍受分配给该虚拟机的带宽的限制。 若要详细了解如何使用加速网络,请查看适用于 WindowsLinux 虚拟机的加速网络。

Azure 虚拟机必须有一个(但也可能有多个)连接的网络接口。 分配给某个虚拟机的带宽是流经所有网络接口(已连接到该虚拟机)的所有出站流量的总和。 换言之,分配的带宽是针对每个虚拟机的,不管为该虚拟机连接了多少网络接口。 若要了解不同的 Azure VM 大小支持的网络接口数,请查看 Azure WindowsLinux VM 大小。

预期的网络吞吐量

若要详细了解每种 VM 大小支持的预期出站吞吐量和网络接口数,请查看 Azure WindowsLinux VM 大小。 选择一个类型(例如“常规用途”),然后在生成的页面上选择大小和系列,例如“Dv2 系列”。 每个系列提供一个表,表中的最后一列包含网络规格,列标题为,

最大 NIC 数/预期网络性能 (Mbps)

吞吐量限制适用于虚拟机。 吞吐量不受以下因素影响:

  • 网络接口数:带宽限制是源自虚拟机的所有出站流量的累积。

  • 加速网络:尽管此功能有助于流量达到已发布的限制,但不会更改限制。

  • 流量目标:所有目标都计入出站限制。

  • 协议:基于所有协议的所有出站流量都计入限制。

网络流限制

除了带宽,VM 上任意给定时间存在的网络连接数目也可能影响其网络性能。 Azure 网络堆栈保留名为“流”的数据结构中 TCP/UDP 连接的每个方向的状态。 典型的 TCP/UDP 连接将创建两个流,一个用于入站方向,另一个用于出站方向。 每个流通过 5 元组(协议、本地 IP 地址、远程 IP 地址、本地端口和远程端口)信息来区分。

在终结点之间进行数据传输时,除了执行数据传输的流以外,还必须创建多个流。 例如,为 DNS 解析创建的流,以及为负载均衡器运行状况探测创建的流。 网关、代理和防火墙等网络虚拟设备 (NVA) 会会看到为在设备处终止和由设备发起的连接所创建的流。

通过转发设备进行的 TCP 对话流计数的屏幕截图。

流限制和活动连接建议

针对一个 VM,Azure 网络堆栈现支持的流共计 100 万个(50 万个入站、50 万个出站)。 VM 可在不同方案中处理的活动连接总计如下所示。

  • 对于每个方向上活动流数为 50 万个的所有 VM 大小,属于虚拟网络的 VM 可以处理 50 万个活动连接

  • 具有网关、代理、防火墙等 NVA 的 VM 可以处理 25 万个活动连接,并且每个方向的活动流数为 50 万个,这是由于在与下一个跃点建立新连接时,将进行转发并创建更多的新流,如上图所示。

达到此限制后,将会删除其他连接。 连接建立速度和终止速度也可能影响网络性能,因为连接的建立和终止与包处理例程共享 CPU。 建议针对预期的流量模式对工作负荷进行基准测试,并根据性能需要对工作负荷进行相应的横向扩展。

Azure Monitor 中提供的指标可用于跟踪 VM 或虚拟机规模集实例上的网络流数量和流创建速率。

此屏幕截图显示了 Azure Monitor 的“指标”页,其中包含入站流和出站流的折线图和总计。

后续步骤