Come impostare i core della CPU per socket in VMware vSphere: procedure consigliate

Quando si configurano le impostazioni del processore per una nuova VM, è importante comprendere diversi concetti fondamentali. Questi includono come calcolare il numero di core della CPU per socket e come questa configurazione può influenzare le prestazioni della VM. È inoltre essenziale comprendere l’impatto dell’utilizzo di un numero inferiore di processori con più core rispetto a un numero maggiore di processori con meno core. Chiarire queste relazioni può aiutarti a scegliere un layout in linea con il tuo carico di lavoro e le capacità dell’host.

Continua a leggere per conoscere questi concetti e i principi di base della configurazione della CPU per le VM su host ESXi.

NAKIVO for VMware vSphere Backup

NAKIVO for VMware vSphere Backup

Complete data protection for VMware vSphere VMs and instant recovery options. Secure backup targets onsite, offsite and in the cloud. Anti-ransomware features.

Terminologia

Iniziamo con le definizioni dei termini che è necessario conoscere quando si configurano le impostazioni della CPU per VM per aiutarti a comprenderne il principio di funzionamento.

Una CPU (unità di elaborazione centrale, chip microprocessore o processore) è un componente chiave del computer. Si tratta di un circuito elettronico con transistor collegato a un socket. Una CPU esegue istruzioni per eseguire calcoli, avviare applicazioni e completare attività. Quando la velocità di clock dei processori si è avvicinata alla barriera termica, i produttori hanno modificato l’architettura dei processori e hanno iniziato a produrre processori con più core CPU. Per evitare confusione tra processori fisici e logici o core di processori, alcuni vendor si riferiscono a un processore fisico come a un socket.

Un socket CPU è un connettore fisico sulla scheda madre a cui è collegata una singola CPU fisica. Una scheda madre ha almeno un socket CPU. Le schede madri dei server hanno solitamente più socket CPU che supportano diversi processori multicore. I socket CPU sono standardizzati per diverse serie di processori. Intel e AMD utilizzano socket CPU diversi per le loro famiglie di processori.

Un core della CPU è la parte del processore che contiene la cache L1. Esegue attività di calcolo in modo indipendente senza interagire con altri core e componenti esterni di un processore “grande” che sono condivisi tra i core. In sostanza, un core può essere considerato un piccolo processore integrato nel processore principale collegato a un socket. Le applicazioni dovrebbero supportare calcoli paralleli per utilizzare in modo razionale i processori multicore.

Hyper-threading è una tecnologia sviluppata da Intel per consentire il calcolo parallelo su processori con un singolo core. L’hyper-threading ha fatto il suo debutto nel 2002 con il rilascio del processore Pentium 4 HT, destinato ai computer desktop. Il sistema operativo rileva un processore single-core con hyper-threading come un processore con due core logici (non core fisici). Allo stesso modo, un processore a quattro core con hyper-threading appare al sistema operativo come un processore con 8 core. Più thread vengono eseguiti su ciascun core, più attività possono essere eseguite in parallelo. I moderni processori Intel dispongono sia di core multipli che di hyper-threading. Di solito è abilitato di default e può essere abilitato o disabilitato nel BIOS. AMD Simultaneous Multi-Threading (SMT) è l’analogo dell’hyper-threading per i processori AMD.

Una vCPU è un processore virtuale configurato come dispositivo virtuale nelle impostazioni hardware virtuali di una VM. Può utilizzare più core della CPU. Una vCPU è collegata a un socket virtuale.

Overcommitment della CPU si verifica quando si assegnano più processori logici (core CPU) alle VM residenti su un host fisico rispetto al numero totale di processori logici disponibili sull’host.

NUMA (Non-Uniform Memory Access) è un tipo di memoria utilizzata nei computer multiprocessore. L’idea è quella di fornire una memoria separata per ciascun processore (a differenza dell’UMA, in cui tutti i processori accedono alla memoria condivisa tramite un bus). Allo stesso tempo, un processore può accedere alla memoria che appartiene ad altri processori utilizzando un bus condiviso (tutti i processori accedono a tutta la memoria del computer). Una CPU ha il vantaggio di prestazioni nell’accedere alla propria memoria locale più velocemente rispetto ad altre memorie su un computer multiprocessore.

The UMA and NUMA designs for multiprocessor computers

Queste architetture di base sono combinate nei moderni computer multiprocessore. I processori sono raggruppati su un pacchetto CPU multicore o nodo. Quelli che appartengono allo stesso nodo condividono l’accesso ai moduli di memoria, in modo simile all’architettura UMA. Inoltre, i processori possono accedere alla memoria dal nodo remoto tramite un’interconnessione condivisa. Lo fanno nell’architettura NUMA, ma con prestazioni più lente, attraverso la CPU che possiede quella memoria piuttosto che direttamente.

The mixed architecture for modern multiprocessor computers

I nodi NUMA sono coppie CPU/memoria costituite da un socket CPU e dai moduli di memoria più vicini. NUMA è solitamente configurato nel BIOS come impostazione di interleaving dei nodi o memoria interleaved.

Virtual NUMA (vNUMA) è l’analogo di NUMA per le VM VMware. Un vNUMA consuma risorse hardware di più di un nodo NUMA fisico per fornire prestazioni ottimali. La tecnologia vNUMA espone la topologia NUMA a un sistema operativo guest. Di conseguenza, il sistema operativo guest è consapevole della topologia NUMA sottostante. La versione hardware virtuale di una VM deve essere 8 o superiore per utilizzare vNUMA.

La gestione di vNUMA è stata notevolmente migliorata in VMware vSphere 6.5, 8.0 e 9.0. Questa funzione non è più controllata dal valore dei core CPU per socket nella configurazione della VM. Per impostazione predefinita, vNUMA è abilitato per le VM che hanno più di 8 processori logici (vCPU). È possibile abilitare vNUMA manualmente per una VM modificando il file di configurazione VMX della VM e aggiungendo la riga numa.vcpu.min=X, dove X è il numero di vCPU per la VM.

Sebbene il valore “Core per socket” non controlli l’attivazione di vNUMA, configurare manualmente questa impostazione in modo che corrisponda alla topologia dei nodi NUMA fisici dell’host rimane una procedura consigliata per ottenere prestazioni ottimali su VM di grandi dimensioni con un numero elevato di vCPU.

Calcolo del numero di core

Scopriamo come calcolare il numero di core fisici della CPU, i core logici della CPU e altri parametri su un server.

  • Il numero totale di core fisici della CPU su una macchina host viene calcolato con la formula:

    (Numero di socket del processore) x (Numero di core/processore) = Numero di core fisici del processore

    Nota: Devono essere considerati solo i socket del processore con processori installati.

  • Se è supportato l’hyper-threading, è possibile calcolare il numero di core del processore logico utilizzando la formula:

    (Numero di core fisici del processore) x (2 thread/processore fisico) = Numero di processori logici

  • Infine, utilizzare questa formula per calcolare le risorse del processore disponibili che possono essere assegnate alle VM:

    (socket CPU) x (core CPU) x (thread)

    Ad esempio, se si dispone di un server con due processori, ciascuno con 4 core e supporto per l’hyper-threading, il numero totale di processori logici che possono essere assegnati alle VM è:

    2(CPU) x 4(core) x 2(HT) = 16 processori logici

    Un processore logico può essere assegnato come singolo processore o singolo core CPU per una VM.

    Per quanto riguarda le VM, grazie alle loro funzioni di emulazione hardware, possono utilizzare più processori e core CPU nella loro configurazione. Un core CPU fisico può essere configurato come CPU virtuale o come core CPU virtuale per una VM.

  • Il numero totale di cicli di clock disponibili per una VM è calcolato come:

    (Numero di socket logici) x (Velocità di clock della CPU)

    Ad esempio, se si configura una VM per utilizzare 2 vCPU con 2 core quando si dispone di un processore fisico con una velocità di clock di 3,0 GHz, la velocità di clock totale è 2 x 2 x 3 = 12 GHz. Se sull’host ESXi viene utilizzato il sovraimpegno della CPU, la frequenza disponibile per la VM può essere inferiore a quella calcolata se le VM eseguono attività che richiedono un uso intensivo della CPU.

Limitazioni per i core della CPU per socket

Le limitazioni della CPU/core in vSphere 7.0 Update 1, vSphere 8.0 e vSphere 9.0 sono elencate di seguito:

  • Il numero massimo di socket di processori virtuali che possono essere assegnati a una VM è 768. Se si desidera assegnarne di più, configurare la VM per l’utilizzo di processori multicore.
  • Il numero massimo di core di processore che possono essere assegnati a una singola VM è 768 in vSphere 8.0 (versione hardware virtuale 18) e aumenta a 960 in vSphere 9.0 (versione hardware virtuale 22). Una VM non può utilizzare un numero di core CPU superiore al numero di core del processore logico sulla macchina fisica.
  • CPU Aggiunta a caldo. Se una VM ha 128 vCPU o meno, non è possibile utilizzare la funzione CPU Aggiunta a caldo, né effettuare una modifica alla configurazione della CPU mentre la VM è in esecuzione.
  • Restrizioni CPU del sistema operativo. Se un sistema operativo ha un limite sul numero di processori e si assegnano più processori virtuali a una VM, i processori aggiuntivi non vengono identificati o utilizzati dal sistema operativo guest. La progettazione tecnica del sistema operativo e le restrizioni di licenza del sistema operativo possono causare questi limiti. Si noti che esistono sistemi operativi con licenza per socket e per core CPU (ad esempio, Windows Server 2019 o Windows Server 2025).

Limiti di supporto della CPU (socket CPU) per alcuni sistemi operativi:

  • Windows 10 Pro – 2 CPU
  • Windows 10 Home – 1 CPU
  • Windows 10 Estación de trabajo – 4 CPU
  • Windows 11 Home/Pro x64 – 2 CPU (il numero massimo di processori logici o vCPU/core è 256)
  • Windows 11 Pro para estaciones de trabajo – 4 CPU (el número máximo de procesadores logicos o vCPU/core es 256)
  • Windows Server 2022 (Standard/Datacenter) – 64 CPU (fino a 640 processori logici o core CPU)
  • Windows Server 2025 (Standard/Datacenter) – 64 CPU (fino a 2048 processori logici o core CPU)
  • Windows Server 2019 Standard/Datacenter – 64 CPU
  • Windows XP Pro x64 – 2 CPU
  • Windows 7 Pro/Ultimate/Enterprise – 2 CPU
  • Windows Server 2003 Datacenter – 64 CPU

Raccomandazioni di configurazione

Per le versioni precedenti di vSphere, si consiglia di utilizzare i socket anziché i core nella configurazione della VM. Inizialmente, potresti non notare una differenza significativa tra socket CPU e core CPU, che può influire sulle prestazioni della VM. Tieni presente alcune funzioni di configurazione. Ricorda NUMA e vNUMA quando prendi in considerazione l’impostazione di più processori virtuali (socket) per una VM al fine di ottenere prestazioni ottimali.

Se vNUMA non è configurato automaticamente, rispecchia la topologia NUMA del server fisico. Di seguito sono riportati alcuni consigli per le VM in VMware vSphere 6.5 e versioni successive (inclusi vSphere 8.0 e 9.0):

  • Quando si definisce il numero di processori logici (vCPU) per una VM, scegliere la configurazione core per socket. Continua fino a quando il conteggio supera il numero di core della CPU su un singolo nodo NUMA sul server ESXi. Utilizza la stessa logica fino a superare la quantità di memoria disponibile su un singolo nodo NUMA del tuo server ESXi fisico.
  • A volte, il numero di processori logici nella configurazione della VM supera il numero di core CPU fisici su un singolo nodo NUMA oppure la quantità di RAM è superiore alla memoria totale disponibile per un singolo nodo NUMA. Per ottenere prestazioni ottimali, valutare la possibilità di suddividere il numero di processori logici (vCPU) tra il numero minimo di nodi NUMA.
  • Non impostare un numero dispari di vCPU se il numero di CPU o la quantità di memoria supera il numero di core della CPU. Lo stesso vale nel caso in cui la memoria superi la quantità allocata per un singolo nodo NUMA su un server fisico.
  • Non creare una VM con un numero di vCPU superiore al numero di core del processore fisico sull’host fisico.
  • Se non è possibile disabilitare vNUMA a causa dei requisiti, non abilitare la funzione vCPU di aggiunta a caldo.

Se vNUMA è abilitato in vSphere prima della versione 6.5 e hai definito il numero di processori logici (vCPU) per la VM, seleziona il numero di socket virtuali mantenendo il numero di core per socket pari a 1 (il valore predefinito). La configurazione con un core per socket consente a vNUMA di selezionare automaticamente la topologia vNUMA migliore per il sistema operativo guest. Questa configurazione automatica è ottimale sulla topologia fisica sottostante del server.

Se vNUMA è abilitato e si utilizza lo stesso numero di processori logici (vCPU), ma si aumenta il numero di core CPU virtuali e si riduce il numero di socket virtuali della stessa quantità, vNUMA non può impostare la configurazione NUMA ottimale per la VM. Di conseguenza, le prestazioni della VM ne risentono e possono peggiorare.

Se il sistema operativo guest e altri software installati sulla VM sono concessi in licenza per processore, configurare la VM in modo che utilizzi un numero inferiore di processori con un numero maggiore di core CPU. Ad esempio, Windows Server 2012 R2 è concesso in licenza per socket, mentre Windows Server 2016 (e versioni successive) è concesso in licenza per core.

Se si utilizza l’overcommitment della CPU nella configurazione delle VM VMware, tenere presente i seguenti valori:

  • Da 1:1 a 3:1: non dovrebbero esserci problemi nell’esecuzione delle VM;
  • Da 3:1 a 5:1 – Si osserva un calo delle prestazioni;
  • 6:1 – È previsto un calo significativo delle prestazioni.

Il sovraccarico della CPU con valori normali può essere utilizzato in ambienti di test e sviluppo senza rischi.

Configurazione delle VM su host ESXi

Innanzitutto, determinare il numero totale di processori logici (il numero totale di CPU) necessari affinché l’host fisico esegua correttamente una VM e raggiunga prestazioni sufficienti. Quindi, definire il numero di socket virtuali con processori (il numero di socket in vSphere Client) e il numero di core della CPU (core per socket) da impostare per la VM, tenendo presenti le raccomandazioni e le limitazioni precedenti. La tabella seguente può aiutare a selezionare la configurazione necessaria.

calculate CPU cores per socket for multiprocessor VMs

Se è necessario assegnare più di 8 processori logici alla VM, la logica rimane la stessa. Per calcolare il numero di CPU logiche in vSphere Client, moltiplicare il numero di socket per il numero di core. Ad esempio, se è necessario configurare una VM per utilizzare socket a 2 processori, ciascuno con 2 core CPU, il numero totale di CPU logiche è 2 * 2= 4. Ciò significa che è necessario selezionare 4 CPU nelle opzioni hardware virtuali della VM in vSphere Client per applicare questa configurazione.

Configurazione dei core per CPU in vSphere Client

Spieghiamo come configurare le opzioni CPU per una VM in VMware vSphere Client. Il processo di configurazione è identico in vSphere 6.x, 7.0, 8.0 e 9.0.

  1. Inserisci l’indirizzo IP del tuo vCenter Server in un browser Web e apri VMware vSphere Client.
  2. Nel navigatore, apri Host e clustere seleziona la VM che desideri configurare. Assicurarsi che la VM sia spenta per modificare la configurazione della CPU.
  3. Fare clic con il pulsante destro del mouse sulla VM, quindi selezionare Modifica impostazioni dal menu contestuale per aprire le impostazioni della VM.
  4. Espandere CPU nella scheda Hardware Virtuale della finestra Modifica impostazioni .
    • CPU. Fare clic sul menu a discesa nella stringa CPU e selezionare il numero totale di processori logici necessari per questa VM. In questo esempio, selezioniamo 4 processori logici per la VM Ubuntu (blog-Ubuntu1).
    • Core per socket. In questa stringa, fare clic sul menu a discesa e selezionare il numero di core necessario per ciascun socket virtuale (processore).
    • CPU Hot Plug. Per utilizzare questa funzione, selezionare la casella di controllo Abilita aggiunta a caldo della CPU . Tenere presente le limitazioni e i requisiti.

      Configuring processors and the number of cores per CPU

    • Prenotazione. Selezionare l’allocazione minima garantita della velocità di clock della CPU (frequenza, MHz o GHz) per la VM su un host ESXi o un cluster.
    • Limite. Selezionare la velocità di clock massima della CPU per il processore della VM. Questa frequenza è la frequenza massima per la VM, anche se questa VM è l’unica in esecuzione sull’host ESXi o sul cluster con più risorse di processore libere. Il limite impostato si applica a tutti i processori virtuali della VM. Se dispone di 2 processori single-core e il limite è 1000 MHz, entrambi i processori virtuali sono attivi con una velocità di clock totale di un milione di cicli al secondo (500 MHz per ciascun core).
    • Condivisioni. Questo parametro definisce la priorità del consumo di risorse da parte delle VM (Bassa, Normale, Alta, Personalizzata) su un host ESXi o un pool di risorse. A differenza dei parametri Reservation e Limit , il parametro Condivisioni Il parametro viene applicato alla VM solo se vi è una carenza di risorse CPU all’interno di un host ESXi, un pool di risorse o un cluster DRS.

      Opzioni disponibili per il parametro Shares :

      • Basso – 500 condivisioni per processore virtuale
      • Normale – 1000 condivisioni per processore virtuale
      • Alto – 2000 condivisioni per processore virtuale
      • Personalizzato – imposta un valore personalizzato

      Più alto è il valore Shares , maggiori saranno le risorse CPU fornite alla VM all’interno di un host ESXi o di un pool di risorse.

    • Virtualizzazione hardware. Selezionare questa casella di controllo per abilitare la virtualizzazione nidificata. Questa opzione è utile se si desidera eseguire una VM all’interno di un’altra VM per scopi di test o didattici.
    • Contatori delle prestazioni. Questa funzione consente il debug e l’ottimizzazione di un’applicazione installata all’interno della VM dopo aver misurato le prestazioni della CPU.
    • Affinità di pianificazione. Questa opzione viene utilizzata per assegnare una VM a un processore specifico. Il valore può essere simile a questo: “0, 2, 4-7“.
    • I/O MMU. Questa funzione consente alle VM di accedere direttamente ai dispositivi di input/output hardware quali controller di storage, schede di rete e schede grafiche (anziché utilizzare dispositivi emulati o paravirtualizzati). I/O MMU è anche denominato Intel Virtualization Technology for Directed I/O (Intel VT-d) e AMD I/O Virtualization (AMD-V). I/O MMU è disabilitato per impostazione predefinita. Questa opzione è deprecata in vSphere 7.0. Se I/O MMU è abilitato, la VM non può essere migrata con vMotion e non è compatibile con snapshot, overcommit di memoria, stato VM sospeso, condivisione NIC fisica e virtualizzazione di rete NSX.

Se si utilizza un Host VMware ESXi e VMware Host Client per configurare le VM in un browser Web, il principio di configurazione è lo stesso di VMware vSphere Client.

Configurazione dei core per CPU in VMware Workstation

Se ci si connette a un server VMware vCenter oppure a un host ESXi in VMware Workstation e apri le impostazioni di una VM vSphere, puoi modificare la configurazione di base dei processori virtuali.

  1. Fai clic su VM > Impostazioni, seleziona la scheda Hardware e fare clic su Processori.
  2. Selezionare il numero di processori virtuali (socket) e il numero di core per processore.

    Nella schermata seguente è possibile vedere la configurazione del processore per la stessa VM Ubuntu configurata in precedenza in vSphere Client.

    Il numero totale di core del processore (core logici dei processori fisici su un host o cluster ESXi) viene calcolato e visualizzato automaticamente di seguito. In confronto, nell’interfaccia di vSphere Client, è possibile impostare il numero totale di core del processore (opzione CPU), selezionare il numero di core per processore e quindi il numero di socket virtuali viene calcolato e visualizzato.

    the number of cores per CPU for vSphere VMs in VMware Workstation

Configurazione dei processori VM in PowerCLI

Se si preferisce utilizzare l’interfaccia della riga di comando per configurare i componenti di VMware vSphere, utilizzare Power CLI per modificare la configurazione della CPU delle VM. Scopriamo come modificare la configurazione della CPU per una VM (Ubuntu 19) in Power CLI. Utilizza questi comandi per le VM spente.

  1. Per configurare una VM in modo che utilizzi due processori virtuali single-core (vengono utilizzati due socket virtuali), utilizzare il comando:

    get-VM -name Ubuntu19 | set-VM -NumCpu 2

    Immettere un altro numero se si desidera impostare un altro numero di processori (socket) per la VM.

  2. Nell’esempio seguente è possibile vedere come configurare una VM per utilizzare due processori virtuali dual-core (vengono utilizzati 2 socket):

    $VM=Get-VM -Name Ubuntu19

    $VMSpec=New-Object -Type VMware.Vim.VirtualMachineConfigSpec -Property @{ “NumCoresPerSocket” = 2

    $VM.ExtensionData.ReconfigVM_Task($VMSpec)

    $VM | Set-VM -NumCPU 2

    Una volta applicata una nuova configurazione della CPU alla VM, questa viene salvata nel file di configurazione VMX della VM. In questo esempio, controlliamo il file Ubuntu19.vmx con la sua ubicazione nel directory VM sull’archivio dati (/vmfs/volumes/datastore2/Ubuntu19/). Le righe con la nuova configurazione della CPU si trovano alla fine del file VMX.

    numvcpus = “2”

    cpuid.coresPerSocket = “2”

  3. Se è necessario ridurre il numero di processori (socket) per una VM, utilizzare lo stesso comando mostrato in precedenza con quantità inferiori. Ad esempio, per impostare un processore (socket) per una VM, utilizzare questo comando:

    get-VM -name Ubuntu19 | set-VM -NumCpu 1

Il vantaggio principale dell’utilizzo di Power CLI è la possibilità di configurare più VM in blocco. L’automazione delle attività è importante se il numero di VM da configurare è elevato. Utilizza i cmdlet VMware e la sintassi di Microsoft PowerShell per creare script.

Conclusione

La configurazione dei socket virtuali e dei core per socket in VMware vSphere consente di definire la topologia della CPU di una VMviene presentata al sistema operativo guest. Queste impostazioni aiutano a garantire che il layout della VM corrisponda ai requisiti del sistema operativo e delle applicazioni installate. VMware offre opzioni flessibili per la regolazione dei core per socket, consentendo di allineare la configurazione alle esigenze amministrative o di licenza. Comprendere come vSphere espone la topologia della CPU è essenziale quando si pianificano le implementazioni delle VM.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Le persone leggono anche