VMware Global Community
meristema
Contributor
Contributor

Come gestire le cpu

Ciao a tutti,

ho un dubbio nella gestione delle cpu sulle macchine guest con vmware esxi.

Avendo 2 processori fisici da 6 core ognuno mi ritrovo ad avere 12 processori logici da assegnare alle macchine , in realtà però avendo attivo anche l' HT, in vmware ne mostra 24 vcpu disponibili, posso realmente assegnare fino a 20 vpcu alle macchine guest (visto che 4 vcpu le tengo per vmware)?

Avendo 3 macchine guest, come è meglio asssegnare in questo caso i core?

Dalla documentazione mi sembra di capire che "Virtual core" e "core per socket" siano la stessa cosa in termini di utilizzo delle cpu, corretto?

In questo caso è indifferente assegnare 2 virtual core e 2 core per socket, oppure 1 virtual core con 4 core per scoket?

Grazie mille

Ciao

Andrea

0 Kudos
11 Replies
ldelloca
Virtuoso
Virtuoso

Ciao Andrea,

in VMware non è necessario "assegnare" i core a una virtual machine piuttosto che a un altra, cosi come non serve riservare dei core a ESXi stesso.

Lo scheduler di ESXi si occupa di ripartire i cicli cpu a tutte le VM che ne fanno richiesta, e riserva già per se una porzione della capacità computazionale. Spiegare nel dettaglio come questa cosa avviene sarebbe lunga, ti invito a leggere la documentazione tecnica disponibile, un buon inizio è questo documento:

http://www.vmware.com/files/pdf/techpaper/VMware-vSphere-CPU-Sched-Perf.pdf

Per la questione socket vs core, si essendo tutti virtualizzati poco cambia, si fa più che altro per problemi di licenze,ad esempio con software licenziati per socket li si può "imbrogliare" mostrandogli un unico socket dotato di molti core.

PS: se stai pensando alla CPU affinity, evitala! E' solo peggiorativa.

Ciao,

Luca.

Luca Dell'Oca | vExpert 2011-2012-2013-2014-2015-2016-2017, VCAP-DCD, CISSP #58353 | http://www.virtualtothecore.com | @dellock6 | http://www.linkedin.com/in/lucadelloca | If you find this post useful, please consider awarding points for "Correct" or "Helpful"
rsicilia
Expert
Expert

Ciao Andrea, alle sagge considerazioni già espresse aggiungo una best practice che VMware da nella documentazione e nei corsi di Design: assegna il minor numero di vCPU possibile nella fase di startup delle VMs ed aggiungi vCPU ai tuoi sistemi guest in funzione del reale consumo di risorse.

Questa "regola aurea" ti permette di utilizzare appieno le peculiarità di consolidamento di VMware e, nel contempo, ti permette di assegnare il giusto quantitativo di risorse ai tuoi sistemi guest. Inoltre ti allontana dal rischio di eccessiva - e talvolta inutile - contesa di risorse.

Un saluto

--

Rocco Sicilia

http://www.roccosicilia.it

Rocco Sicilia [aka: BrC] - http://www.roccosicilia.it - VTSP 4-5, VCP 4-5, vExpert 2013/2014
meristema
Contributor
Contributor

grazie per la risposta, in attesa di finire di leggere il documento che mi hai girato volevo chiederti un ultima cosa.

Ho letto in alcuni vari post (non sul forum Vmware) che l'HT è consigliabile disattivarlo in Vmware , forse per alcune problematiche relative alla 4.1 descritte proprio nel documento, ma è ancora così oppure l'HT migliora le prestazioni in ambiente virtuale?

bye

Andrea

0 Kudos
fbonez
Expert
Expert

Dai un'occhiata a pag. 20 di questo documento http://www.vmware.com/pdf/Perf_Best_Practices_vSphere5.0.pdf

consigliano vivamente di tenerlo abilitato. Fidati Smiley Wink

Ciao

-- If you find this information useful, please award points for "correct" or "helpful". | @fbonez | www.thevirtualway.it
meristema
Contributor
Contributor

ottimo ma allora quando assegno le vCpu devo tenere conto (nel mio caso ) di 24Cpu logiche invece che 12 core dovuti ai 2 processori a 6 core ognuno con HT abilitato.

Quindi potrei dare per esempio 8 vCpu per ognuna delle 3 macchine guest e sfruttare tutti i core delle CPU ... corretto?

0 Kudos
Tinto1970
Commander
Commander


Quindi potrei dare per esempio 8 vCpu per ognuna delle 3 macchine guest e sfruttare tutti i core delle CPU ... corretto?

no! Incomincia a dare 1vCPU alle tue VM, massimo 2 se sei sicuro che quel che ci gira sopra ne abbia bisogno e le sfrutti.

Poi incrementi solo se sei sicuro che serva. Se la vm è lenta perché ha poca ram o alta latenza sui dischi aggiungere cpu non serve: è come voler risolvere un problema di tenuta di strada aumentando il numero di cilindri del motore.

--
Alessandro aka Tinto VCP-DCV 2023 | VVSPHT 2023 | VMCE 2024 | vExpert 2024 | Veeam Legend
please give me a "Kudo" if you find my answer useful
www.linkedin.com/in/tinivelli
my blog: https://blog.tinivelli.com
0 Kudos
rsicilia
Expert
Expert

No meristema 🙂

Assegnare vCPU indiscriminatamente peggiorerà le performance della tua infrastruttura in quanto genererai solo più contesa e vedrai il "ready time" delle CPU aumentare.

Come tutti ti abbiamo suggerito il modo migliore è assegnare le vCPU che servono partendo da 1 o 2 vCPU ed aumentarle man mano che osservi più richiesta di risorse. Per capire se una VM "chiede di più" basta guardare i grafici delle risorse.

Ciao!

--

Rocco Sicilia

http://www.roccosicilia.it

Rocco Sicilia [aka: BrC] - http://www.roccosicilia.it - VTSP 4-5, VCP 4-5, vExpert 2013/2014
0 Kudos
meristema
Contributor
Contributor

si avevo inteso, la mia domanda era solo per capire se devo tenere conto della somma delle vcpu calcolando l'HT oppure no, ovvero 12 o 24 vcpu che posso utilizzare per le guest.

A proposito come faccio a capire dai grafici di Vmware se la macchina guest ha bisogno di più CPU,  dalla percentuale di utilizzo ?

0 Kudos
Tinto1970
Commander
Commander

non c'è una relazione rigida fra core fisici e vCPU date alle VM. Puoi avere N vCPU per ogni core fisico.

La virtualizzazione serve proprio a svincolarsi dalle caratteristiche fisiche delle macchine, e a sfruttarle di più e meglio rispetto all'era "antica" dove in un datacenter la cpu media dormiva per il 90% del tempo....

--
Alessandro aka Tinto VCP-DCV 2023 | VVSPHT 2023 | VMCE 2024 | vExpert 2024 | Veeam Legend
please give me a "Kudo" if you find my answer useful
www.linkedin.com/in/tinivelli
my blog: https://blog.tinivelli.com
0 Kudos
rsicilia
Expert
Expert

HT é una tecnologia che ottimizza e rende più efficiente le code di calcolo. di fatto si é stimato che con HT attivo un CORE riesce a restituire performance fino a 1,6 volte meglio che senza HT (nei processori di ultima generazione). Sicuramente meglio abilitarlo quindi ma non significa assolutamente avere il doppio dei CORE a disposizione.

Ciao

--

Rocco Sicilia

http://www.roccosicilia.it

Rocco Sicilia [aka: BrC] - http://www.roccosicilia.it - VTSP 4-5, VCP 4-5, vExpert 2013/2014
0 Kudos
AndreTheGiant
Immortal
Immortal

In realtà l'HT non aumenta veramente le prestazioni (basta fissare 2 VM CPU intensitive sullo stesso core fisico e si vedranno andare al 50% l'una), ma aiuta lo scheduler.

E' comunque best practice abilitarlo.

Andrew | http://about.me/amauro | http://vinfrastructure.it/ | @Andrea_Mauro
0 Kudos