In che modo Hyper-V VMQ migliora le prestazioni di rete?

Scopri come Hyper-V VMQ ottimizza il traffico di rete, riduce la latenza e migliora l'efficienza della CPU negli ambienti virtualizzati.

Download gratuito
per VM, sistema operativo, database, file, NAS, ecc.
sofia

Updated by Sofia on 2025/11/21

Indice dei contenuti
  • Tecnologia RSS del NIC del server fisico tradizionale

  • Come funziona VMQ di Hyper-V

  • Quali sono le funzioni di VMQ?

  • VMQ dinamico vs. VMQ statico

  • Come gestire le code delle macchine virtuali?

  • Eseguire il backup della VM Hyper-V con la soluzione Vinchin

  • Domande frequenti sulla coda delle macchine virtuali Hyper-v

  • Conclusione

Nell'architettura di rete dei moderni data center, l'utilizzo efficiente delle CPU multi-core e l'ottimizzazione delle prestazioni di rete negli ambienti virtualizzati sono sempre state sfide tecnologiche fondamentali. I tradizionali server fisici utilizzano la tecnologia RSS sulle NIC per distribuire in modo intelligente il traffico di rete su più core della CPU, migliorando significativamente la capacità di trasmissione e l'utilizzo della CPU. Tuttavia, l'introduzione della virtualizzazione ha reso i percorsi del traffico di rete più complessi: le NIC fisiche devono servire contemporaneamente sia il sistema host che molteplici macchine virtuali, rendendo difficile per la tecnologia RSS tradizionale adattarsi direttamente all'architettura stratificata degli switch virtuali. Per risolvere questo problema, la piattaforma di virtualizzazione Hyper-V ha introdotto la tecnologia Virtual Machine Queue (VMQ), che eredita il concetto di bilanciamento del carico multi-core di RSS ottimizzandolo per scenari di virtualizzazione.

Tecnologia RSS del NIC del server fisico tradizionale  

Prima di introdurre VMQ, diamo un’occhiata a come un NIC riceve i dati di rete su un server fisico tradizionale. Quando sono stati introdotti i processori multi-core, inizialmente le schede di rete non supportavano la distribuzione degli interrupt del traffico di rete su più core logici, ma li gestivano su un singolo core logico. Ciò causava un utilizzo non equilibrato della CPU e riduceva l'efficienza nell'elaborazione del traffico di rete. Oggi, la maggior parte delle NIC supporta il RSS, che permette alle schede di rete dotate di code hardware multiple di distribuire i dati ricevuti su diverse code. Nei server fisici multi-core, la tecnologia RSS indirizza gli interrupt provenienti da queste code verso diversi core logici della CPU, migliorando così l'efficienza nella ricezione dei dati. L'obiettivo del RSS è assegnare le code al core logico della CPU ottimale, bilanciando il carico della CPU derivante dal traffico di rete.  

Come funziona VMQ di Hyper-V  

La situazione in un ambiente virtualizzato è più complessa rispetto a quella in un ambiente fisico. Innanzitutto, quando una NIC fisica viene trasformata in un interruttore virtuale, perde la funzionalità RSS. In secondo luogo, poiché più macchine virtuali (VM) operano sull'host fisico condividendo la stessa NIC per ricevere pacchetti, è necessario un metodo altrettanto efficace per bilanciare il carico della CPU legato alla rete garantendo al contempo le prestazioni di rete delle VM. È qui che entra in gioco VMQ. VMQ è una coda speciale che funziona in modo simile alle code hardware sulle NIC e utilizza un meccanismo simile all'RSS per distribuire gli interrupt delle code tra diversi core logici della CPU. Tuttavia, la logica di filtraggio e assegnazione dei pacchetti in VMQ differisce da quella delle code hardware. In un ambiente puramente fisico, la NIC fisica considera solo la propria coda dati, mentre in un ambiente virtualizzato l'interruttore virtuale deve bilanciare le code sia per l'host fisico che per le VM.  

Prima di spiegare il principio di funzionamento di VMQ, comprendiamo innanzitutto il percorso di instradamento dei pacchetti all'interno di un interruttore virtuale. L'interruttore virtuale Hyper-V dispone di due tipi di code: VMQ e la coda predefinita. I dati nella coda predefinita attraversano diverse fasi, inclusi instradamento dell'interruttore virtuale, filtraggio, estensioni, liste di controllo di accesso e percorsi di inoltro, prima di essere finalmente distribuiti tramite il bus della macchina virtuale.

VMQ raccoglie innanzitutto gli indirizzi MAC delle schede di rete virtuali (vNIC) nelle macchine virtuali prima di distribuirli nelle code utilizzando un filtro MAC VMQ per le macchine virtuali abilitate a VMQ. Le macchine virtuali senza VMQ abilitato, o il cui traffico non corrisponde al filtro MAC VMQ, rimangono nella coda predefinita. A differenza della coda predefinita, che segue il percorso completo di instradamento, filtraggio, estensione, controllo di accesso e inoltro, VMQ ignora alcuni di questi passaggi e trasmette i dati al bus della macchina virtuale con un overhead minimo di instradamento. Una volta che i dati raggiungono il bus della macchina virtuale, la vNIC nella macchina virtuale utilizza la tecnologia RSS virtuale (vRSS) per distribuire le interruzioni della coda alle CPU virtuali.

Quali sono le funzioni di VMQ?

Se VMQ è abilitato sulla vNIC, l'interruttore virtuale ignora diversi livelli di codice di routing, garantendo che i dati vengano inoltrati alla macchina virtuale in modo rapido e preciso. Rispetto a uno scenario senza VMQ, ciò riduce non solo il consumo delle risorse della CPU per il routing, ma abbassa anche la latenza nella trasmissione dei dati.

VMQ fornisce le seguenti funzionalità:  

  • Migliora il throughput della rete distribuendo il traffico di rete di più VM su più processori.  

Nota: In Hyper-V, le sotto-partizioni sono anche indicate come VM.

  • Riduce l'utilizzo della CPU scaricando i compiti di filtraggio dei pacchetti sull'hardware della NIC.

  • Evita la duplicazione dei dati di rete utilizzando il DMA per trasferire direttamente i dati nella memoria della macchina virtuale.

  • Segmenta i dati della rete per fornire un ambiente sicuro.  

  • Supporta la migrazione live.  

VMQ dinamico vs. VMQ statico  

Il VMQ può essere classificato come dinamico o statico. Il VMQ statico significa che l'associazione tra VMQ e core logici della CPU è fissa. Ad esempio, il VMQ assegnato alla VM1 viene associato al core logico CPU1, mentre il VMQ assegnato alla VM2 viene associato al core logico CPU2. Questa associazione rimane invariata per tutta la durata del ciclo di vita di VM1 e VM2, il che significa che i dati di VM1 sono sempre gestiti dal core logico CPU1 e i dati di VM2 dal core logico CPU2. Tuttavia, nei casi in cui la CPU che gestisce il traffico di rete di una macchina virtuale diventa occupata, il VMQ statico potrebbe rallentare l'elaborazione della rete per quella VM.  

Per affrontare questo problema, a partire da Windows Server 2012 R2 è stata introdotta la VMQ dinamica. La VMQ dinamica è più intelligente: a differenza della VMQ statica, consente l'elaborazione di rete delle macchine virtuali di adattarsi dinamicamente in base al carico e alla CPU logica associata. Se la CPU logica 2 è relativamente inutilizzata, le code di VM1 e VM2 possono essere associate alla CPU logica 2.

Come gestire le code delle macchine virtuali? 

Abilitare o disabilitare VMQ per una macchina virtuale è semplice. Per impostazione predefinita, Hyper-V abilita VMQ. Tuttavia, può essere abilitato o disabilitato in base ai requisiti della macchina virtuale e alle prestazioni effettive della scheda di rete. In alcuni casi, VMQ potrebbe causare un significativo peggioramento delle prestazioni di rete per le macchine virtuali. Se si verificano tali problemi, VMQ può essere disabilitato sulla scheda di rete dell'host seguendo questi passaggi: 

1. Aprire lo strumento di gestione dell'host—Computer Management, passare a Device Manager ed espandere l'elenco degli Network Adapters.  

2. Fare clic con il pulsante destro del mouse sulla NIC fisica associata a Hyper-V, quindi selezionare Properties.  

3. Nella finestra di dialogo delle proprietà della NIC, passare alla scheda Advanced, individuare l'opzione Virtual Machine Queue nell'elenco delle proprietà, modificarne il valore su Disabled e fare clic su OK.

Se ci sono troppe macchine virtuali e un numero insufficiente di code VMQ sulla scheda di rete, è possibile assegnare pesi VMQ per stabilire una priorità nell'elaborazione dei dati di rete. Le macchine virtuali con pesi più elevati avranno la precedenza nella gestione delle code VMQ, mentre quelle con pesi inferiori avranno una priorità minore. Per impostazione predefinita, il peso VMQ è impostato su 100, come mostrato nell'esempio seguente:  

PS C:\> Get-VMNetworkAdapter -VMName VM01 | fl VMQweight  VMQWeight  : 100

Per modificare il peso VMQ per una macchina virtuale, utilizzare il seguente comando PowerShell:  

PS C:\> Get-VMNetworkAdapter -VMName vmname -VMQweight 50

Eseguire il backup della VM Hyper-V con la soluzione Vinchin

In determinati scenari, un software di backup professionale come Vinchin Backup & Recovery può offrire prestazioni più ottimizzate e funzionalità più avanzate.

Vinchin Backup & Recovery è una soluzione avanzata di protezione dei dati che supporta un'ampia gamma di piattaforme di virtualizzazione popolari, tra cui VMware, Hyper-V, XenServer, Red Hat Virtualization, Oracle, Proxmox, ecc., nonché database, NAS, server file, Linux & Windows Server. Offre funzionalità avanzate come backup senza agent, backup incrementale perpetuo, migrazione V2V, ripristino immediato, ripristino granulare, crittografia del backup, compressione, deduplicazione e protezione contro i ransomware. Questi sono fattori essenziali per garantire la sicurezza dei dati e ottimizzare l'utilizzo delle risorse di archiviazione.

Sono necessari solo 4 passaggi per eseguire il backup delle macchine virtuali Hyper-V con Vinchin Backup & Recovery:

1. Seleziona l'oggetto del backup.

Backup VM Hyper-V

2. Seleziona la destinazione del backup.

Backup VM Hyper-V

3. Configurare le strategie di backup.

Backup VM Hyper-V

4. Rivedi e invia il lavoro.

Backup VM Hyper-V

Scopri in prima persona la potenza di questo sistema completo con una prova gratuita di 60 giorni! Lascia le tue esigenze specifiche, e riceverai una soluzione personalizzata che si adatta perfettamente al tuo ambiente IT.

Domande frequenti sulla coda delle macchine virtuali Hyper-v

1. Cos'è VMMQ?

La coda multipla della macchina virtuale (VMMQ) migliora VMQ distribuendo il traffico di rete su più core della CPU, potenziando le prestazioni per carichi di lavoro ad alta larghezza di banda sulle NIC 10GbE+ .

2. Quante code RSS devo utilizzare?

Il numero di code Receive Side Scaling (RSS) da utilizzare dipende dal proprio adattatore di rete, dai core della CPU e dal carico di lavoro. Utilizzare lo stesso numero o un numero inferiore di code RSS rispetto ai core della CPU disponibili per evitare un eccessivo numero di cambi di contesto.

Conclusione  

La tecnologia VMQ estende la logica delle code hardware delle NIC fisiche al livello di virtualizzazione, consentendo una distribuzione efficiente del traffico di rete delle macchine virtuali e un bilanciamento del carico della CPU. Il suo valore principale consiste nell'evitare il percorso di routing complesso degli switch virtuali, sfruttando al contempo meccanismi dinamici di allocazione delle code per ridurre la latenza di rete e migliorare il throughput negli ambienti con concorrenza multi-VM. Sebbene una configurazione impropria di VMQ possa causare problemi di prestazioni in determinati scenari, le sue caratteristiche ne fanno una tecnologia fondamentale per la creazione di reti virtualizzate ad alte prestazioni.

Condividi su:

Categories: VM Tips