Otimizar a taxa de transferência de rede para máquinas virtuais do Azure

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de EOL (fim da vida útil). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.

Máquinas Virtuais do Azure (VMs) têm configurações de rede padrão que podem ser mais otimizadas para taxa de transferência de rede. Este artigo descreve como otimizar a taxa de transferência de rede para VMs Windows e Linux do Microsoft Azure, incluindo as distribuições principais como o Ubuntu, CentOS e Red Hat.

Máquinas virtuais do Windows

Se a máquina virtual do Windows der suporte à rede acelerada, habilite esse recurso para a taxa de transferência ideal. Para obter mais informações, confira Criar uma VM do Windows com rede acelerada.

Para todas as outras máquinas virtuais do Windows, usar RSS (Receive Side Scaling) pode alcançar uma taxa de transferência máxima maior que uma VM sem RSS. O RSS pode ser desabilitado por padrão em uma VM do Windows. Para determinar se o RSS está habilitado, e habilitá-lo se ele estiver desabilitado no momento, conclua as seguintes etapas:

  1. Veja se o RSS está habilitado para um adaptador de rede com o comando do PowerShell Get-NetAdapterRss. Na saída do exemplo seguinte retornada do Get-NetAdapterRss, o RSS não está habilitado.

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                 : False
    
  2. Para habilitar o RSS, insira o seguinte comando:

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

    Esse comando não tem nenhuma saída. O comando altera as configurações de NIC. Isso causa perda temporária de conectividade por cerca de um minuto. Aparece uma caixa de diálogo Reconectando durante a perda de conectividade. Normalmente, a conectividade for restaurada após a terceira tentativa.

  3. Confirme se o RSS está habilitado na VM inserindo o Get-NetAdapterRss comando novamente. Se for bem-sucedido, será retornada a seguinte saída de exemplo:

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

Máquinas virtuais do Linux

RSS está sempre habilitado por padrão em uma VM do Linux do Azure. Kernels do Linux liberados desde outubro de 2017 incluem novas opções de otimização de rede que permitem que uma VM Linux obtenha maior taxa de transferência de rede.

Ubuntu para novas implantações

O kernel do Azure do Ubuntu é o mais otimizado para desempenho de rede no Azure. Para obter a otimização mais recente, primeiro instale a versão compatível mais recente do 18.04-LTS, da seguinte maneira:

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

Depois que a criação for concluída, digite os seguintes comandos para obter as atualizações mais recentes. Essas etapas também funcionam para VMs executando o kernel do Azure no Ubuntu no momento.

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

Se uma implantação existente do Ubuntu já tiver o kernel do Azure, mas não for atualizada com erros, esse conjunto de comandos opcional poderá 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

Atualização de kernel do Azure no Ubuntu para VMs existentes

Você pode obter um desempenho significativo de taxa de transferência atualizando para o kernel do Linux do Azure. Para verificar se você tem esse kernel, verifique a versão do kernel. Ele deve ser o mesmo ou posterior ao usado no exemplo.

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

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

Se sua máquina virtual não tiver o kernel do Azure, o número da versão geralmente começa com "4.4". Se a VM não tiver o kernel do Azure, execute os seguintes comandos como raiz:

#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 obter as otimizações mais recentes, recomendamos a criação de uma máquina virtual com a versão mais recente com suporte especificando os seguintes parâmetros:

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

VMs novas e existentes podem se beneficiar da instalação do LIS (Linux Integration Services) mais recente. A otimização de taxa de transferência é feita no LIS, a partir da versão 4.2.2-2. As versões posteriores contêm melhorias adicionais. Insira os seguintes comandos para instalar o último LIS:

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

Red Hat

Para obter as otimizações, é melhor criar uma VM com a versão mais recente com suporte especificando os seguintes parâmetros:

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

As VMs novas e existentes podem se beneficiar da instalação do LIS mais recente. A otimização de taxa de transferência é feita no LIS, a partir da versão 4.2. Digite os comandos a seguir para baixar e instalá-los:

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

Saiba mais sobre o Linux Integration Services versão 4.3 para o Hyper-V exibindo a página de download.

Próximas etapas