Optimización del rendimiento de red en las máquinas virtuales de AzureOptimize network throughput for Azure virtual machines

Las máquinas virtuales de Azure (VM) tienen una configuración de red predeterminada que se puede optimizar para mejorar aún más el rendimiento de la red.Azure virtual machines (VM) have default network settings that can be further optimized for network throughput. 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.This article describes how to optimize network throughput for Microsoft Azure Windows and Linux VMs, including major distributions such as Ubuntu, CentOS, and Red Hat.

Máquina virtual de WindowsWindows VM

Si la máquina virtual Windows es compatible con redes aceleradas, habilite esta característica para conseguir un rendimiento óptimo.If your Windows VM supports Accelerated Networking, enabling that feature would be the optimal configuration for throughput. En el caso de otras máquinas virtuales Windows, el uso de escalado en el lado de la recepción (RSS) pueden logar un rendimiento máximo mayor que las que no lo usan.For all other Windows VMs, using Receive Side Scaling (RSS) can reach higher maximal throughput than a VM without RSS. En las máquinas virtuales Windows, RSS se puede deshabilitar de forma predeterminada.RSS may be disabled by default in a Windows VM. Para determinar si RSS está habilitado y para habilitarlo si no lo está en la actualidad, complete los siguientes pasos:To determine whether RSS is enabled, and enable it if it's currently disabled, complete the following steps:

  1. Compruebe si RSS está habilitado para un adaptador de red con el comando Get-NetAdapterRss de PowerShell.See if RSS is enabled for a network adapter with the Get-NetAdapterRss PowerShell command. En la siguiente salida de ejemplo que devuelve Get-NetAdapterRss, RSS no está habilitado.In the following example output returned from the Get-NetAdapterRss, RSS is not enabled.

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                 : False
    
  2. Para habilitar RSS escriba el siguiente comando:To enable RSS, enter the following command:

    Get-NetAdapter | % {Enable-NetAdapterRss -Name $_.Name}
    

    El comando anterior no tiene ninguna salida.The previous command does not have an output. El comando cambió la configuración de NIC, lo que ha provocado una pérdida temporal de la conectividad durante aproximadamente un minuto.The command changed NIC settings, causing temporary connectivity loss for about one minute. Durante la pérdida de conectividad aparece un cuadro de diálogo de reconexión.A Reconnecting dialog box appears during the connectivity loss. La conectividad se suele restaurar al tercer intento.Connectivity is typically restored after the third attempt.

  3. Confirme que RSS está habilitado en la máquina virtual, para lo que debe volver a escribir el comando Get-NetAdapterRss.Confirm that RSS is enabled in the VM by entering the Get-NetAdapterRss command again. Si se realiza correctamente, se devuelve la siguiente salida de ejemplo:If successful, the following example output is returned:

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                  : True
    

Máquina virtual de LinuxLinux VM

De manera predeterminada, en las máquinas virtuales Linux de Azure RSS está siempre habilitado.RSS is always enabled by default in an Azure Linux VM. 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.Linux kernels released since October 2017 include new network optimizations options that enable a Linux VM to achieve higher network throughput.

Ubuntu para las nuevas implementacionesUbuntu for new deployments

El kernel de Azure de Ubuntu proporciona el mejor rendimiento de la red en Azure y ha sido el kernel predeterminado desde el 21 de septiembre de 2017.The Ubuntu Azure kernel provides the best network performance on Azure and has been the default kernel since September 21, 2017. Para obtener este kernel, primero instale la última versión compatible de 16.04-LTS, como se describe a continuación:In order to get this kernel, first install the latest supported version of 16.04-LTS, as follows:

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

Una vez que la creación finaliza, escriba los siguientes comandos para obtener el actualizaciones más recientes.After the creation is complete, enter the following commands to get the latest updates. Estos pasos también funcionan en las máquinas virtuales que ejecutan actualmente el kernel de Azure de Ubuntu.These steps also work for VMs currently running the Ubuntu Azure kernel.

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

El siguiente conjunto de comandos opcional puede ser útil para las implementaciones de Ubuntu existentes que ya tiene el kernel de Azure, pero que no han podido realizar actualizaciones debido a errores.The following optional command set may be helpful for existing Ubuntu deployments that already have the Azure kernel but that have failed to further updates with errors.

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

Actualización del kernel de Azure de Ubuntu para las máquinas virtuales existentesUbuntu Azure kernel upgrade for existing VMs

Se puede lograr un rendimiento significativo instalando el kernel de Linux de Azure propuesto.Significant throughput performance can be achieved by upgrading to the Azure Linux kernel. Para comprobar si tienen este kernel, compruebe la versión del kernel.To verify whether you have this kernel, check your kernel version.

#Azure kernel name ends with "-azure"
uname -r

#sample output on Azure kernel:
#4.13.0-1007-azure

Si la máquina virtual no tiene el kernel de Azure, el número de versión comenzará normalmente con "4.4."If your VM does not have the Azure kernel, the version number usually begins with "4.4." Si la máquina virtual no tiene el kernel de Azure, ejecute los comandos siguientes como raíz:If the VM does not have the Azure kernel, run the following commands as root:

#run as root or preface with sudo
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get install "linux-azure"
reboot

CentOSCentOS

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:In order to get the latest optimizations, it is best to create a VM with the latest supported version by specifying the following parameters:

"Publisher": "OpenLogic",
"Offer": "CentOS",
"Sku": "7.4",
"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).New and existing VMs can benefit from installing the latest Linux Integration Services (LIS). La optimización del rendimiento es en LIS, a partir de 4.2.2-2, aunque las versiones posteriores contienen más mejoras.The throughput optimization is in LIS, starting from 4.2.2-2, although later versions contain further improvements. Escriba los siguientes comandos para instalar el LIS más reciente:Enter the following commands to install the latest LIS:

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

Red HatRed 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:In order to get the optimizations, it is best to create a VM with the latest supported version by specifying the following parameters:

"Publisher": "RedHat"
"Offer": "RHEL"
"Sku": "7-RAW"
"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).New and existing VMs can benefit from installing the latest Linux Integration Services (LIS). La optimización del rendimiento se realiza en LIS a partir de la versión 4.2.The throughput optimization is in LIS, starting from 4.2. Escriba los siguientes comandos para descargar e instalar LIS:Enter the following commands to download and install LIS:

mkdir lis4.2.3-5
cd lis4.2.3-5
wget https://download.microsoft.com/download/6/8/F/68FE11B8-FAA4-4F8D-8C7D-74DA7F2CFC8C/lis-rpms-4.2.3-5.tar.gz
tar xvzf lis-rpms-4.2.3-5.tar.gz
cd LISISO
install.sh #or upgrade.sh if prior LIS was previously installed

Para más información sobre la versión 4.2 de Linux Integration Services para Hyper-V, vea la página de descarga.Learn more about Linux Integration Services Version 4.2 for Hyper-V by viewing the download page.

Pasos siguientesNext steps