在Azure上构建分布式应用时,虚拟机的内网通信质量直接决定了整体系统的响应速度和数据一致性。同可用区(Availability Zone)内的虚拟机共享低延迟网络链路,理论上比跨可用区或跨区域通信更具优势,但实际性能仍受实例规格、虚拟网络配置和操作系统网络栈的影响。本文基于Windows Server 2022环境,使用Ping与iperf3工具对同一可用区内的多台虚拟机进行内网延迟、吞吐量及稳定性测试,帮助读者量化这一关键指标。

一、测试环境与网络架构说明
本次测试在Azure某个区域的同一可用区内创建三台虚拟机,规格分别为Standard_D4s_v5、Standard_D8s_v5和一台网络优化型实例。所有虚拟机加入同一个虚拟网络VNet,并位于同一个子网10.0.1.0/24中。网络安全性组默认放行ICMP和TCP 5201端口,用于iperf3测试。操作系统统一使用Windows Server 2022 Datacenter,数据盘为Premium SSD,系统盘为128 GiB。
为方便重复执行,iperf3工具放置在C:\tools\iperf3.exe路径下。测试采用一台作为服务端,另外两台作为客户端,通过内网私有IP直接连接。Azure同可用区意味着这些虚拟机在物理上位于同一数据中心的不同故障域,但网络跳数和转发延迟很小。需要特别说明的是,同可用区不等同于同一故障域,仍然具备一定的容灾隔离能力。
在开始性能评测前,我们先确认虚拟机之间的连通性。在客户端执行以下命令:
ping 10.0.1.5 -n 20
回显中的平均延迟基本反映了虚拟网络的基础时延。如果使用加速网络,该值通常可以稳定在0.5毫秒以内。接下来进入吞吐量测试环节。
二、延迟与吞吐量基准评测
延迟测试使用Windows自带的Ping命令发送20个数据包,目标为服务端内网IP。结果显示平均往返时间(RTT)为0.8毫秒,最大为1.2毫秒,无丢包。这说明同可用区内网链路质量非常高,远低于跨可用区常见的2至5毫秒延迟。对于数据库主从同步、内存缓存复制等场景,这种延迟表现已经接近物理机房内的交换机级别。
吞吐量测试使用iperf3进行单线程TCP测试。服务端命令如下:
C:\tools\iperf3.exe -s -p 5201
客户端命令为:
C:\tools\iperf3.exe -c 10.0.1.5 -p 5201 -t 30 -i 5
在D4s_v5与D8s_v5之间,单线程TCP吞吐量约为4.2 Gbps;在网络优化型实例之间可达7.8 Gbps。这与Azure文档中标称的网卡带宽上限基本一致。需要注意,吞吐量受到虚拟机规格的硬限制,即使物理网络允许更高,但实例的vCPU数和网络带宽分配策略会成为瓶颈。
为了观察延迟与吞吐量之间的相互影响,我们还在压力测试过程中同时执行Ping。当iperf3跑满带宽时,Ping延迟从0.8毫秒升至2.5毫秒左右,但未出现明显丢包。这表明网络队列管理有效,但仍建议关键业务不要长期将内网带宽占满。
三、高并发与稳定性表现
单线程测试无法完全反映真实业务中的并发连接情况。我们使用iperf3的多线程参数-P 8,模拟多个数据流同时传输。客户端命令如下:
C:\tools\iperf3.exe -c 10.0.1.5 -p 5201 -t 60 -i 10 -P 8
测试结果显示,8个并发流的总吞吐量并没有线性增长,而是趋于网卡上限。在D4s_v5实例上,总吞吐量稳定在4.0 Gbps左右,与单线程结果基本持平,但每个流的带宽分配出现波动,最低时单个流仅有350 Mbps。这说明Azure虚拟网络在端点处存在一定的流量整形机制,防止单个流或少数流独占全部带宽。
进一步增加线程数到16时,部分客户端出现了少量TCP重传,但未发生连接中断。通过Windows事件查看器中的网络日志,可以看到网卡驱动报告了若干次发送队列溢出。解决方法是启用加速网络(Accelerated Networking)并调整TCP参数。可以使用以下PowerShell命令检查加速网络状态:
Get-AzNetworkInterface -ResourceGroupName "rg-prod" -Name "vm1-nic" | Select-Object -ExpandProperty EnableAcceleratedNetworking
如果输出为True,说明加速网络已启用。关闭状态会显著增加延迟和CPU消耗。建议在生产环境中始终对支持加速网络的实例开启该功能。
四、性能优化与部署建议
根据本次评测结果,同可用区内网通信在默认配置下已经可以满足大多数应用需求。但若要进一步榨取性能,推荐从以下几个维度入手。首先是实例规格选择,网络带宽与vCPU数量强相关,D8s_v5以上的规格通常能获得更高的内网吞吐上限。如果业务以网络转发为主,可选择网络优化型实例,例如Standard_D8s_v5的加速网络吞吐可达12 Gbps以上。
其次是操作系统TCP参数调优。Windows Server默认的TCP窗口缩放和动态缓存机制在高速网络中可能不是最优。可以使用以下命令调整接收窗口自动调优级别:
netsh int tcp set global autotuninglevel=normal
以及启用接收侧缩放(RSS):
Set-NetAdapterRss -Name "Ethernet" -Enabled $true -MaxProcessors 8
这些调整可以改善多队列网卡的数据包分发效率,降低CPU单核负载。需要重启虚拟机后才会完全生效。
最后是部署架构层面的考虑。如果内网延迟和带宽是核心诉求,应将相关虚拟机放入同一个可用区,并使用近端放置组(Proximity Placement Group,PPG)来进一步缩短物理距离。PPG可以确保虚拟机在数据中心的物理服务器之间保持最小网络跳数,特别适合HPC、低延迟交易等场景。但要注意,PPG会降低可用性保障,需权衡取舍。
整体来看,Azure同可用区虚拟机内网性能表现优秀,1毫秒以内的延迟和接近网卡上限的吞吐量能够支撑绝大多数分布式工作负载。通过合理配置加速网络、优化TCP参数并选择合适的实例规格,完全可以在云端构建出媲美本地数据中心的高性能内网环境。