Quando una macchina virtuale Windows in vSphere trasmette pacchetti UDP di grandi dimensioni, la velocità effettiva è inferiore al previsto oppure oscilla anche quando l'altro traffico è trascurabile.

Problema

Quando una macchina virtuale Windows trasmette pacchetti UDP più grandi di 1024 byte, la velocità effettiva risulta inferiore al previsto oppure oscilla anche quando l'altro traffico è trascurabile. Nel caso di un server di streaming video, la riproduzione del video si interrompe.

Causa

Per ogni pacchetto UDP di dimensioni superiori a 1024 byte, lo stack di rete Windows attende un interrupt di completamento della trasmissione prima di inviare il pacchetto successivo. vSphere non offre una soluzione alternativa trasparente della situazione.

Soluzione

  • Aumentare la soglia in byte a cui Windows modifica il comportamento per i pacchetti UDP modificando il registro del sistema operativo guest Windows.
    1. Individuare la chiave di registro HKLM|System|CurrentControlSet|Services|Afd|Parameters.
    2. Aggiungere un valore con il nome FastSendDatagramThreshold, di tipo DWORD, con valore 1500.
    Per informazioni sulla risoluzione di questo problema nel registro Windows, vedere http://support.microsoft.com/kb/235257.
  • Modificare le impostazioni di unione della scheda NIC della macchina virtuale.
    Se la macchina virtuale Windows dispone di una scheda vNIC VMXNET3, configurare uno dei seguenti parametri nel file .vmx della macchina virtuale. Utilizzare vSphere Client o modificare direttamente il file .vmx.
    Azione Parametro Valore
    Aumentare la frequenza di interrupt della macchina virtuale a una velocità maggiore rispetto alla velocità di pacchetti prevista. Ad esempio, se la velocità di pacchetti prevista è 15.000 interrupt al secondo, impostare la velocità di interrupt su 16.000 interrupt al secondo. Impostare il parametro ethernetX.coalescingScheme su rbc e il parametro ethernetX.coalescingParams su 16.000. La frequenza di interrupt predefinita è 4000 interrupt al secondo.

    ethernetX.coalescingScheme

    ethernetX.coalescingParams

    rbc

    16000

    Disattivare l'unione per carichi di lavoro a bassa velocità effettiva o sensibili alla latenza. Per informazioni sulla configurazione dei carichi di lavoro a bassa latenza, vedere Procedura consigliata di configurazione per l'ottimizzazione delle prestazioni dei carichi di lavoro sensibili alla latenza nelle macchine virtuali vSphere. ethernetX.coalescingScheme disattivato

    Ripristinare l'algoritmo di unione dalle versioni precedenti di ESXi.

    Nota: La possibilità di ripristinare l'algoritmo precedente non sarà disponibile nelle versioni successive di vSphere.
    ethernetX.coalescingScheme calibrare

    X accanto a ethernet indica il numero di sequenza del vNIC nella macchina virtuale.

    Per ulteriori informazioni sulla configurazione dei parametri nel file .vmx, vedere la documentazione Amministrazione delle macchine virtuali vSphere.

  • Modificare le impostazioni di unione dell'host ESXi.
    Questo approccio influisce su tutte le macchine virtuali e sulle NIC di tutte le macchine virtuali nell'host.

    È possibile modificare l'elenco di impostazioni di sistema avanzate per l'host in vSphere Client oppure utilizzare un comando della console vCLI sull'host da ESXi Shell.

    Azione Parametro in vSphere Client Parametro per il comando esxcli system settings sdvanced set Valore
    Impostare una frequenza di interrupt predefinita superiore alla velocità di pacchetti prevista. Ad esempio, impostare la frequenza di interrupt su 16.000 se sono previsti 15.000 interrupt al secondo.

    Net.CoalesceScheme

    Net.CoalesceParams

    /Net/CoalesceScheme

    /Net/CoalesceParams

    rbc

    16000

    Disattivare l'unione per carichi di lavoro a bassa velocità effettiva o sensibili alla latenza. Per informazioni sulla configurazione dei carichi di lavoro a bassa latenza, vedere Procedura consigliata di configurazione per l'ottimizzazione delle prestazioni dei carichi di lavoro sensibili alla latenza nelle macchine virtuali vSphere. Net.CoalesceDefaultOn /Net/CoalesceDefaultOn 0

    Ripristinare lo schema di unione dalle versioni precedenti di ESXi.

    Nota: La possibilità di ripristinare l'algoritmo precedente non sarà disponibile nelle versioni successive di vSphere.
    Net.CoalesceScheme /Net/CoalesceScheme calibrare

    Per informazioni sulla configurazione di un host da vSphere Client, consultare la documentazione vCenter Server e gestione degli host. Per informazioni sull'impostazione delle proprietà host mediante un comando vCLI, consultare la documentazione Guida di riferimento di ESXCLI.