Optimización del rendimiento de red en las máquinas virtuales de Azure

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para más información, consulte la Guía de fin de ciclo de vida de CentOS.

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, CentOS 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:

  1. 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
    
  2. 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.

  3. 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. Para obtener las optimizaciones más recientes, primero instale la última versión compatible 18.04-LTS, tal como se indica a continuación:

"Publisher": "Canonical",
"Offer": "UbuntuServer",
"Sku": "18.04-LTS",
"Version": "latest"

Una vez que la creación finaliza, escriba los siguientes comandos para obtener el actualizaciones más recientes. Estos pasos también funcionan en las máquinas virtuales que ejecutan actualmente el kernel de Azure de Ubuntu.

#run as root or preface with sudo
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

Si una implementación de Ubuntu existente ya tiene el kernel de Azure, pero no se puede actualizar y aparecen errores, este conjunto de comandos opcional podría ser útil.

#optional steps might be helpful in existing deployments with the Azure kernel
#run as root or preface with sudo
sudo apt-get -f install
sudo apt-get --fix-missing install
sudo apt-get clean
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

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

CentOS

Para obtener las optimizaciones más recientes, se recomienda crear una máquina virtual con la versión más reciente compatible mediante la especificación de los siguientes parámetros:

"Publisher": "OpenLogic",
"Offer": "CentOS",
"Sku": "7.7",
"Version": "latest"

Tanto las máquinas virtuales nuevas como las existentes se pueden beneficiar de la versión más reciente de Linux Integration Services (LIS). La optimización del rendimiento se realiza en LIS a partir de la versión 4.2.2-2. Las versiones posteriores contienen mejoras adicionales. Escriba los siguientes comandos para instalar el LIS más reciente:

sudo yum update
sudo reboot
sudo yum install microsoft-hyper-v

Red Hat

Para obtener las optimizaciones, se recomienda crear una máquina virtual con la versión más reciente compatible mediante la especificación de los siguientes parámetros:

"Publisher": "RedHat"
"Offer": "RHEL"
"Sku": "7-RAW"
"Version": "latest"

Las máquinas virtuales nuevas y existentes pueden beneficiarse de la instalación de LIS más reciente. La optimización del rendimiento se realiza en LIS a partir de la versión 4.2. Escriba los siguientes comandos para descargar e instalar LIS:

wget https://aka.ms/lis
tar xvf lis
cd LISISO
sudo ./install.sh #or upgrade.sh if prior LIS was previously installed

Para más información sobre la versión 4.3 de Linux Integration Services para Hyper-V, consulte la página de descarga.

Pasos siguientes