Ottimizzare la velocità effettiva di rete per le macchine virtuali di Azure

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Azure Macchine virtuali (VM) hanno impostazioni di rete predefinite che possono essere ulteriormente ottimizzate per la velocità effettiva di rete. Questo articolo illustra come ottimizzare la velocità effettiva di rete per macchine virtuali di Microsoft Azure Windows e Linux, incluse le distribuzioni principali, ad esempio Ubuntu, CentOS e Red Hat.

Macchine virtuali Windows

Se la macchina virtuale Windows supporta la rete accelerata, abilitare tale funzionalità per una velocità effettiva ottimale. Per altre informazioni, vedere Creare una macchina virtuale Windows con rete accelerata.

Per tutte le altre macchine virtuali Windows, l'uso di Receive Side Scaling (RSS) può raggiungere una velocità effettiva massima superiore rispetto a una macchina virtuale senza RSS. RSS potrebbe essere disabilitato per impostazione predefinita in una macchina virtuale Windows. Per determinare se RSS è abilitato e abilitarlo se è disabilitato, eseguire la procedura seguente:

  1. Verificare se RSS è abilitato per una scheda di rete con il comando PowerShell Get-NetAdapterRss . Nell'output di esempio seguente restituito da Get-NetAdapterRss, RSS non è abilitato.

    Name                    : Ethernet
    InterfaceDescription    : Microsoft Hyper-V Network Adapter
    Enabled                 : False
    
  2. Per abilitare RSS, immettere il comando seguente:

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

    Questo comando non ha un output. Il comando modifica le impostazioni della scheda di interfaccia di rete. Causa una perdita temporanea di connettività per circa un minuto. Viene visualizzata una finestra di dialogo Riconnessione durante la perdita di connettività. La connettività viene in genere ripristinata dopo il terzo tentativo.

  3. Verificare che RSS sia abilitato nella macchina virtuale immettendo di nuovo il comando Get-NetAdapterRss. Se l'esito è positivo, viene restituito l'output di esempio seguente:

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

Macchine virtuali Linux

RSS è sempre abilitato per impostazione predefinita nella macchina virtuale Linux di Azure. I kernel Linux rilasciati a partire da ottobre 2017 includono opzioni di ottimizzazione di rete che consentono a una macchina virtuale Linux di ottenere una velocità effettiva di rete superiore.

Ubuntu per nuove distribuzioni

Il kernel ubuntu di Azure è il più ottimizzato per le prestazioni di rete in Azure. Per ottenere le ottimizzazioni più recenti, installare prima di tutto la versione supportata più recente di 18.04-LTS, come indicato di seguito:

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

Al termine della creazione, immettere i comandi seguenti per ottenere gli aggiornamenti più recenti. Questi passaggi funzionano anche per le VM che attualmente eseguono il kernel Azure Ubuntu.

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

Se una distribuzione Ubuntu esistente ha già il kernel di Azure ma non riesce ad eseguire l'aggiornamento con errori, questo set di comandi facoltativo potrebbe essere utile.

#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

Aggiornamento del kernel Azure Ubuntu per le macchine virtuali esistenti

È possibile ottenere prestazioni significative della velocità effettiva eseguendo l'aggiornamento al kernel Linux di Azure. Per verificare se si ha già questo kernel, controllare la versione del kernel. Deve essere uguale o successivo all'esempio.

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

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

Se la macchina virtuale non ha il kernel di Azure, il numero di versione inizia in genere con "4.4". Se la macchina virtuale non ha il kernel di Azure, eseguire i comandi seguenti come radice:

#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

Per ottenere le ottimizzazioni più recenti, è consigliabile creare una macchina virtuale con la versione supportata più recente specificando i parametri seguenti:

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

Sia le macchine virtuali nuove che esistenti possono trarre vantaggio dall'installazione della versione più recente di Linux Integration Services (LIS). L'ottimizzazione della velocità effettiva è disponibile in LIS a partire dalla versione 4.2.2-2. Le versioni successive contengono ulteriori miglioramenti. Per installare la versione di LIS più recente, immettere i comandi seguenti:

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

Red Hat

Per ottenere le ottimizzazioni, è consigliabile creare una macchina virtuale con la versione supportata più recente specificando i parametri seguenti:

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

Sia le macchine virtuali nuove che esistenti possono trarre vantaggio dall'installazione della versione più recente di LIS. L'ottimizzazione della velocità effettiva è disponibile in LIS a partire dalla versione 4.2. Immettere i comandi seguenti per scaricare e installare LIS:

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

Per altre informazioni su Linux Integration Services versione 4.3 per Hyper-V, vedere la pagina di download.

Passaggi successivi