Optimización del rendimiento de red en las máquinas virtuales de Azure
Las máquinas virtuales (VM) de Azure tienen una configuración de red predeterminada que se puede optimizar para mejorar aún más el rendimiento de la red. En este artículo se describe cómo optimizar el rendimiento de la red de las máquinas virtuales Windows y Linux de Microsoft Azure, incluidas las distribuciones principales como Ubuntu y Red Hat.
Máquinas virtuales Windows
Si la máquina virtual Windows admite redes aceleradas, habilite esa característica para lograr un rendimiento óptimo. Para más información, consulte Creación de una máquina virtual Windows con redes aceleradas.
En el caso de otras máquinas virtuales Windows, el uso de escalado en la recepción (RSS) puede logar un rendimiento máximo y mayor que en el caso de máquinas que no usan RSS. En las máquinas virtuales Windows, RSS se puede deshabilitar de forma predeterminada. Para determinar si RSS está habilitado y para habilitarlo si no lo está en la actualidad, complete los siguientes pasos:
Compruebe si RSS está habilitado para un adaptador de red con el comando Get-NetAdapterRss de PowerShell. En la siguiente salida de ejemplo que devuelve
Get-NetAdapterRss
, RSS no está habilitado.Name : Ethernet InterfaceDescription : Microsoft Hyper-V Network Adapter Enabled : False
Para habilitar RSS escriba el siguiente comando:
Get-NetAdapter | % {Enable-NetAdapterRss -Name $_.Name}
Este comando no tiene ninguna salida. El comando cambia la configuración de la NIC. Provoca una pérdida temporal de conectividad durante aproximadamente un minuto. Durante la pérdida de conectividad, aparece un cuadro de diálogo Reconectando. La conectividad se suele restaurar al tercer intento.
Confirme que RSS está habilitado en la máquina virtual, para lo que debe volver a escribir el comando
Get-NetAdapterRss
. Si se realiza correctamente, se devuelve la siguiente salida de ejemplo:Name : Ethernet InterfaceDescription : Microsoft Hyper-V Network Adapter Enabled : True
Máquinas virtuales Linux
De manera predeterminada, en las máquinas virtuales Linux de Azure RSS está siempre habilitado. Los kernels de Linux lanzados desde octubre de 2017 incluyen nuevas opciones de optimización de red que permiten que las máquinas virtuales Linux logren un mayor rendimiento de la red.
Ubuntu para las nuevas implementaciones
El kernel de Azure de Ubuntu es que mejor rendimiento de red ofrece en Azure. Actualmente, todas las imágenes de Ubuntu de Canonical vienen de forma predeterminada con el kernel optimizado de Azure instalado.
Simplemente puede usar el comando siguiente para asegurarse de que usa el kernel de Azure que se identifica con -azure al final de la versión.
uname -r
#sample output on Azure kernel:
6.8.0-1017-azure
Actualización del kernel de Azure de Ubuntu para las máquinas virtuales existentes
Al actualizar al kernel de Linux de Azure, se puede lograr un rendimiento significativo. Para comprobar si tienen este kernel, compruebe la versión del kernel. Debe ser el mismo o posterior al del ejemplo.
#Azure kernel name ends with "-azure"
uname -r
#sample output on Azure kernel:
#4.13.0-1007-azure
En caso de que la máquina virtual no tenga el kernel de Azure, el número de versión generalmente empieza con "4.4." Si esto ocurre, ejecuta los siguientes comandos como raíz:
#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
Otras distribuciones
La mayoría de las distribuciones modernas deben tener mejoras significativas con kernels más recientes que 4.19+, puede comprobar la versión actual del kernel y asegurarse de que está ejecutando un kernel más reciente.
Pasos siguientes
- Implemente las VM próximas entre sí para obtener una latencia baja con los grupos con ubicación por proximidad.
- Vea el resultado con las pruebas de ancho de banda y rendimiento para su escenario.
- Aprenda cómo el ancho de banda se asigna a las máquinas virtuales.
- Obtenga más información con las preguntas más frecuentes acerca de Azure Virtual Network.