Ciao a tutti,
sto leggendo moltissimo in merito al mio dilemma,
assegnare ad una VM 4 Socket oppure 1 Socket con 4 Core.
Ora, visto la vostra esperienza, sono qui a chiedervi, se tale opzione e' legata solamente ad un discorso di licenza OS / Software,
oppure le prestazioni cambiano in maniera considerevole, da dover quindi, studiare caso per caso, quale soluzione sia meglio adottare?
Come detto precedentemente, da cio che ho letto, sembra essere solo per un discorso OS / Software.
Grazie di un vostro parere.
Ivan
Ciao,
in generale si, il vincolo principale è il conteggio dei socket che viene fatto dal Guest OS, non solo per vincoli di licenza ma anche di limiti hardware supportati. Puoi iniziare a leggere qualcosa qui:
dove vedi ad esempio come passare molti core a un Windows 2003 che per limite gestirebbe solo 4 cpu, ovvero 4 socket.
Ci sono poi anche altri problemi come ad esempio la gestione dei nodi NUMA da parte delle cpu multicore, trovi moltissimi articoli a riguardo, riassumere il tutto qui verrebbe molto lungo. C'è ad esempio un post di Frank Denneman di qualche anno fa molto ben fatto:
http://frankdenneman.nl/2010/09/13/esx-4-1-numa-scheduling/
anche se è riferito a vSphere 4.1 , la spiegazione di come funziona un sistema numa è ancora valida.
Ciao,
Luca.
Ti confermo quanto hai letto.
E' solo una questione di licenza/software.
Ciao
Francesco
Ciao,
in generale si, il vincolo principale è il conteggio dei socket che viene fatto dal Guest OS, non solo per vincoli di licenza ma anche di limiti hardware supportati. Puoi iniziare a leggere qualcosa qui:
dove vedi ad esempio come passare molti core a un Windows 2003 che per limite gestirebbe solo 4 cpu, ovvero 4 socket.
Ci sono poi anche altri problemi come ad esempio la gestione dei nodi NUMA da parte delle cpu multicore, trovi moltissimi articoli a riguardo, riassumere il tutto qui verrebbe molto lungo. C'è ad esempio un post di Frank Denneman di qualche anno fa molto ben fatto:
http://frankdenneman.nl/2010/09/13/esx-4-1-numa-scheduling/
anche se è riferito a vSphere 4.1 , la spiegazione di come funziona un sistema numa è ancora valida.
Ciao,
Luca.
Grazie Ragazzi,
ho letto il doc di Frank Denneman, ma le mie conoscenze non mi permetto di apprendere, nel migliore dei modi
i test descritti.
Quindi mi chiedo se, una scelta , piuttosto che un altra ( Socket / Core ), possa generare performance migliori.
Da test di carico fatti non ho notato nessuna differenza, ma un conto e' un test un conto e' la produzione.
Grazie ancora
Grazie Luca,
del primo link non ero a conoscenza.
Francesco
In modo molto scarno, la risposta di base è no. Se veramente hai problemi di performance allora si puoi andare a verificare gli accoppiamenti dello scheduler di ESXi rispetto all'architettura sottostante, ma ripeto riguarda solo casi in cui le prestazioni sono importanti. In modo molto grezzo, ad esempio potresti avere prestazioni minori se fai una VM da 6 vcpu e sotto hai due processori quad core…
Ciao,
Luca.
No,
fortunatamente nessun problema di performance, ma sai quando incominci a vedere un aspetto , di cui non conosci nulla,
cominci a leggere di tutto e alla fine stai peggio di prima.
Quindi le vostre considerazioni sono state molto utili.
Attualmente possiedo 2 Fujitsu RX900 S2 , ognuno con
6 SOCKET
10 CORES per SOCKET
120 LOGICAL PROCESSORS
Grazie ancora del vostro supporto
Ma banalmente,
software multicore invece di trovarsi piu core si trova piu socket , cosa succede?
Ammazza che macchinoni!!! 😮
Ora non so chi ha deciso di prendere questi server, ma ora tu paghi licenze per 12 socket su 2 server.
sarebbe stato meglio prendere 6 server dual socket. In caso di guasto di uno si sarebbero spente un sesto delle VM.
Nel tuo caso invece, se ne spegneranno metà. Non sempre più grosso è meglio.
Ps. Salvo esigenze particolari.
Ciao
Francesco
Non sono io che decido l' architettura!!!!
Cmq si, bei trattori!!!!!!!
Sì, ma allora dovresti "proprio" documentarti riguardo le architetture numa e come funzionano, visto i server che usate!
Su questi server immagino avrai un gran quantitativo di ram, vero? Beh, Non pensare ad esempio che se hai tutti i 4 Tb che gestiscono (con 8 socket) la ram sia gestita tutta da una CPU. Ognuna gestisce una parte della memoria, e in caso una VM nel nostro caso (o un thread di un pocesso...) richieda più memoria, oppure la stessa sia salvata su aree gestite da differenti CPU, allora dovrà attraversare il bus condiviso (QPI come lo chiama Intel) e leggere/scrivere la memoria gestita da un'altra CPU, con ovvie fluttuazioni nelle prestazioni.
Qui probabilmente lo spiegano meglio di me:
Office of the CTO | vNUMA: What it is and why it matters
E per chi possa pensare leggendo che sono fisime e stiamo parlando di microsecondi, errore. Le differenze di prestazioni si sentono. Ad esempio usando una scheda Fusion-IO, capace di fare 100k IOPs circa, ho visto questi numeri su un sistema dual socket 6-core, mentre su un 8-socket andava molto ma molto peggio, perchè si perde più tempo ad attraversare in lungo e in largo il bus che a processare dati...
Ho capito che non hai scelto tu l'architettura, ma spero chi l'abbia fatto abbia avuto motivazioni valide, fondamentalmente che ci sia almeno 1 VM che richieda il quantitativo di RAM gestito dal quel server fisico. E cmq, io avrei fatto un piccolo cluster a 2 nodi per la singola VM "monster" e tenuto un cluster di tanti server medi per tutte le altre. Come ha detto Francesco, il failure domain (la quantità di VM nel nostro caso che potrebbero crashare) qui è gigantesco...
Ragazzi,
vi ringrazio molto di tutte le info.
Buon lavoro a tutti!!!!