Ottimizzare la velocità effettiva di rete per le macchine virtuali di AzureOptimize network throughput for Azure virtual machines

Le macchine virtuali di Azure hanno impostazioni di rete predefinite che possono essere ottimizzate ulteriormente per una migliore velocità effettiva di rete.Azure virtual machines (VM) have default network settings that can be further optimized for network throughput. 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.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.

Macchina virtuale WindowsWindows VM

Se la macchina virtuale di Windows è supportata da una Rete accelerata, abilitare tale funzionalità costituisce la configurazione ottimale per la velocità effettiva.If your Windows VM is supported with Accelerated Networking, enabling that feature would be the optimal configuration for throughput. Per tutte le altre macchine virtuali di Windows, tramite Receive-Side Scaling (RSS) esse possono raggiungere una velocità effettiva massima superiore rispetto a una VM senza RSS.For all other Windows VMs, using Receive Side Scaling (RSS) can reach higher maximal throughput than a VM without RSS. È possibile disabilitare RSS per impostazione predefinita in una macchina virtuale Windows.RSS may be disabled by default in a Windows VM. Completare la procedura seguente per determinare se RSS è abilitato e abilitarlo se è disabilitato.Complete the following steps to determine whether RSS is enabled and to enable it if it's disabled.

  1. Immettere il comando Get-NetAdapterRss di PowerShell per verificare se RSS è abilitato per una scheda di rete.Enter the Get-NetAdapterRss PowerShell command to see if RSS is enabled for a network adapter. Nell'output di esempio seguente restituito da Get-NetAdapterRss RSS non è abilitato.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. Immettere il comando seguente per abilitare RSS:Enter the following command to enable RSS:

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

    Il comando precedente non restituisce alcun output.The previous command does not have an output. Il comando ha modificato le impostazioni della scheda di interfaccia di rete, provocando la perdita di connettività temporanea per circa un minuto.The command changed NIC settings, causing temporary connectivity loss for about one minute. Durante la perdita di connettività viene visualizzata una finestra di dialogo di riconnessione.A Reconnecting dialog box appears during the connectivity loss. La connettività viene in genere ripristinata dopo il terzo tentativo.Connectivity is typically restored after the third attempt.

  3. Verificare che RSS sia abilitato nella macchina virtuale immettendo di nuovo il comando Get-NetAdapterRss.Confirm that RSS is enabled in the VM by entering the Get-NetAdapterRss command again. Se l'esito è positivo, viene restituito l'output di esempio seguente:If successful, the following example output is returned:

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

VM LinuxLinux VM

RSS è sempre abilitato per impostazione predefinita nella macchina virtuale Linux di Azure.RSS is always enabled by default in an Azure Linux VM. 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.Linux kernels released since October 2017 include new network optimizations options that enable a Linux VM to achieve higher network throughput.

Ubuntu per nuove distribuzioniUbuntu for new deployments

Il kernel Azure Ubuntu offre le migliori prestazioni di rete in Azure ed è il kernel predefinito dal 21 settembre 2017.The Ubuntu Azure kernel provides the best network performance on Azure and has been the default kernel since September 21, 2017. Per ottenere il kernel, installare prima di tutto la versione supportata più recente, 16.04-LTS, come illustrato sotto:In order to get this kernel, first install latest supported version of 16.04-LTS, as described below:

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

Al termine della creazione, immettere i comandi seguenti per ottenere gli aggiornamenti più recenti.After the creation is complete, enter the following commands to get the latest updates. Questi passaggi funzionano anche per le VM che attualmente eseguono il kernel Azure 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

Il set di comandi facoltativi seguenti può essere utile per le distribuzioni di Ubuntu esistenti che hanno già il kernel Azure, ma per cui si sono verificati errori durante gli aggiornamenti.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

Aggiornamento del kernel Azure Ubuntu per le macchine virtuali esistentiUbuntu Azure kernel upgrade for existing VMs

È possibile ottenere prestazioni significative per la velocità effettiva effettuando l'aggiornamento al kernel Azure Linux proposto.Significant throughput performance can be achieved by upgrading to the Azure Linux kernel. Per verificare se si ha già questo kernel, controllare la versione 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.11.0-1014-azure

Se la VM non ha il kernel Azure, il numero di versione inizierà in genere con "4.4".If your VM does not have the Azure kernel, the version number will usually begin with "4.4". In questi casi, eseguire i comandi seguenti come radice.In those cases, 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

Per ottenere le ottimizzazioni più recenti, l'ideale è creare una VM con la versione supportata più recente specificando i parametri seguenti: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"

Le VM nuove ed esistenti possono trarre vantaggio dall'installazione della versione più recente di Linux Integration Services (LIS).New and existing VMs can benefit from installing the latest Linux Integration Services (LIS). L'ottimizzazione della velocità effettiva è presente in LIS a partire dalla versione 4.2.2-2, anche se le versioni successive contengono ulteriori miglioramenti.The throughput optimization is in LIS, starting from 4.2.2-2, although later versions contain further improvements. Per installare la versione di LIS più recente, immettere i comandi seguenti:Enter the following commands to install the latest LIS:

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

Red HatRed Hat

Per ottenere le ottimizzazioni, l'ideale è creare una VM con la versione supportata più recente specificando i parametri seguenti: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"

Le VM nuove ed esistenti possono trarre vantaggio dall'installazione della versione più recente di Linux Integration Services (LIS).New and existing VMs can benefit from installing the latest Linux Integration Services (LIS). L'ottimizzazione della velocità effettiva è disponibile in LIS a partire dalla versione 4.2.The throughput optimization is in LIS, starting from 4.2. Immettere i comandi seguenti per scaricare e installare LIS:Enter the following commands to download and install LIS:

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

Per altre informazioni su Linux Integration Services versione 4.2 per Hyper-V, vedere la pagina di download.Learn more about Linux Integration Services Version 4.2 for Hyper-V by viewing the download page.

Passaggi successiviNext steps