优化 Azure 虚拟机网络吞吐量
Azure 虚拟机 (VM) 的默认网络设置可以进一步针对网络吞吐量进行优化。 本文介绍如何优化 Azure Windows 和 Linux VM(包括 Ubuntu 等主要发行版)的网络吞吐量。
Windows 虚拟机
如果 Windows 虚拟机支持加速网络,请启用该功能以实现最佳吞吐量。 有关详细信息,请参阅创建具有加速网络的 Windows VM。
对于所有其他 Windows 虚拟机,与不使用 RSS 的 VM 相比,使用接收方缩放 (RSS) 可达到更高的最大吞吐量。 默认情况下,RSS 可能在 Windows VM 中已禁用。 完成以下步骤以确定是否启用了 RSS 并在处于禁用状态时启用:
使用 Get-NetAdapterRss PowerShell 命令查看是否为网络适配器启用了 RSS。 在以下从
Get-NetAdapterRss
返回的示例输出中,RSS 未启用。Name : Ethernet InterfaceDescription : Microsoft Hyper-V Network Adapter Enabled : False
输入以下命令以启用 RSS:
Get-NetAdapter | % {Enable-NetAdapterRss -Name $_.Name}
此命令没有任何输出。 该命令会更改 NIC 设置。 它会导致临时连接丢失约一分钟。 在连接丢失期间显示“正在重新连接”对话框。 通常在第三次尝试后,连接会还原。
再次输入
Get-NetAdapterRss
命令,确认 RSS 在 VM 中已启用。 如果成功,将返回以下示例输出:Name : Ethernet InterfaceDescription : Microsoft Hyper-V Network Adapter Enabled : True
Linux 虚拟机
默认情况下,RSS 在 Azure Linux VM 中始终已启用。 自 2017 年 12 月以后发布的 Linux 内核均包含新的网络优化选项,可使 Linux VM 实现更高的网络吞吐量。
用于新部署的 Ubuntu
Ubuntu Azure 内核对于 Azure 上的网络性能是最优的。 目前,Canonical 的所有 Ubuntu 映像都默认安装了优化的 Azure 内核。
只需使用以下命令,即可确保你使用的是 Azure 内核,它由版本末尾的 -azure 标识。
uname -r
#sample output on Azure kernel:
6.8.0-1017-azure
现有 VM 的 Ubuntu Azure 内核升级
可以通过升级到 Azure Linux 内核来实现显著的吞吐量性能。 若要验证是否具有此内核,请检查你的内核版本。 该版本应与示例版本相同或更新。
#Azure kernel name ends with "-azure"
uname -r
#sample output on Azure kernel:
#4.13.0-1007-azure
如果虚拟机没有 Azure 内核,则版本号通常以“4.4.”开头。如果 VM 没有 Azure 内核,请以 root 用户身份运行以下命令:
#run as root or preface with sudo
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get install "linux-azure"
sudo reboot
其他发行版
大多数新式发行版应具有显著改进,得益于比 4.19+ 更新的内核,你可以检查当前内核版本,确保运行的是较新的内核。
后续步骤
- 使用邻近放置组将各个 VM 部署在相近的位置,以缩短延迟。
- 请通过带宽/吞吐量测试查看你的方案的优化后结果。
- 阅读有关如何为虚拟机分配带宽的信息。
- 通过 Azure 虚拟网络常见问题解答了解详细信息。