Specificando un'impostazione di affinità CPU per ogni macchina virtuale, è possibile limitare l'assegnazione delle macchine virtuali a un sottoinsieme dei processori disponibili nei sistemi multiprocessore. Utilizzando questa funzionalità, è possibile assegnare ogni macchina virtuale ai processori nel set di affinità specificato.
L'affinità CPU specifica i vincoli di posizionamento tra macchina virtuale e processore ed è diversa dalla relazione creata tra macchine virtuali o da una regola di affinità tra macchine virtuali e host, che specifica i vincoli di posizionamento dell'host da macchina virtuale a macchina virtuale.
In questo contesto, il termine CPU si riferisce a un processore logico in un sistema hyperthreading e fa riferimento a un core in un sistema non hyperthreading.
L'impostazione di affinità CPU per una macchina virtuale si applica a tutte le CPU virtuali associate alla macchina virtuale e a tutti gli altri thread (denominati anche world) associati alla macchina virtuale. Tali thread della macchina virtuale eseguono l'elaborazione richiesta per la verifica di mouse, tastiera, schermo, CD-ROM e dispositivi legacy vari.
In alcuni casi, ad esempio i carichi di lavoro che richiedono un uso intensivo della visualizzazione, è possibile che si verifichi una comunicazione significativa tra le CPU virtuali e questi altri thread della macchina virtuale. Le prestazioni potrebbero risultare ridotte se l'impostazione di affinità della macchina virtuale impedisce che questi thread aggiuntivi vengano pianificati simultaneamente con le CPU virtuali della macchina virtuale. Alcuni esempi includono una macchina virtuale uniprocessore con affinità a una singola CPU o a una macchina virtuale SMP bidirezionale con affinità a solo due CPU.
Per ottenere prestazioni ottimali, quando si utilizzano impostazioni di affinità manuali, VMware consiglia di includere almeno una CPU fisica aggiuntiva nell'impostazione di affinità per consentire la pianificazione di almeno uno dei thread della macchina virtuale contemporaneamente alle relative CPU virtuali. Alcuni esempi includono una macchina virtuale uniprocessore con affinità ad almeno due CPU o una macchina virtuale SMP bidirezionale con affinità ad almeno tre CPU.
Assegnazione di una macchina virtuale a un processore specifico
Utilizzando l'affinità CPU, è possibile assegnare una macchina virtuale a un processore specifico. In questo modo è possibile limitare l'assegnazione delle macchine virtuali a un processore specifico disponibile nei sistemi multiprocessore.
Procedura
Potenziali problemi con l'affinità della CPU
Prima di utilizzare l'affinità della CPU, potrebbe essere necessario prendere in considerazione determinati problemi.
I potenziali problemi con l'affinità della CPU includono:
- Per i sistemi multiprocessore, i sistemi ESXi eseguono il bilanciamento del carico automatico. Evitare la specifica manuale dell'affinità della macchina virtuale per migliorare la capacità dell'utilità di pianificazione di bilanciare il carico tra processori.
- L'affinità può interferire con la capacità dell'host ESXi di soddisfare la prenotazione e le condivisioni specificate per una macchina virtuale.
- Poiché il controllo ammissione della CPU non considera l'affinità, una macchina virtuale con impostazioni di affinità manuali potrebbe non ricevere sempre la sua prenotazione completa.
Le macchine virtuali che non hanno impostazioni di affinità manuali non sono influenzate negativamente dalle macchine virtuali con impostazioni di affinità manuali.
- Quando si sposta una macchina virtuale da un host a un altro, l'affinità potrebbe non essere più applicata perché il nuovo host potrebbe avere un numero diverso di processori.
- L'utilità di pianificazione NUMA potrebbe non essere in grado di gestire una macchina virtuale già assegnata a determinati processori utilizzando l'affinità. Per ulteriori informazioni, vedere Utilizzo di sistemi NUMA con ESXi.
- L'affinità può influire sulla capacità dell'host di pianificare le macchine virtuali su processori multicore o sottoposti a hyperthreading per sfruttare appieno le risorse condivise su tali processori.