La configurazione di una macchina virtuale con più di 1 CPU / core migliorerà effettivamente le prestazioni?


11

Quando utilizzo la workstation VMware, posso impostare la VM con più core. In realtà lo sto usando su una macchina con dual core e 4 core logici. Quindi migliorerei davvero le prestazioni VMS usando più core sulla VM?


3
Vale la pena ricordare una cosa quando si dimensionano gli ospiti virtuali: se avrebbe beneficiato dell'installazione su una macchina reale, allora ne trarrebbe vantaggio come macchina virtuale e viceversa. E soprattutto: niente di magico accade ai requisiti di sistema o dell'applicazione solo perché hai virtualizzato qualcosa .
Rob Moir

Risposte:


8

dipende da ciò che la VM è in esecuzione, un guest su una macchina con n numero di core funzionerà meglio con n-1 core assegnati fintanto che il guest è in grado di utilizzare efficacemente più CPU. Sfortunatamente il modo più semplice per determinare questo è provarlo e vedere. Di solito inizio con 2 e mi fermo quando finisco l'aumento delle prestazioni. In genere 2 core è dove vedo il "punto debole". Poche combinazioni di app / os che ho incontrato scaleranno meglio di così.


6

Per chiarire, stai dicendo che hai una CPU dual-core e hai assegnato 4 CPU virtuali sulla VM?

In questo caso, no; se si assegnano più vCPU di quanti siano i core di esecuzione fisica, si vedrà effettivamente una leggera riduzione delle prestazioni a causa del sovraccarico di condividere i 2 core fisici tra 4 core virtuali (oltre a tutto ciò che è in esecuzione sull'host fisico).

Vedrai le migliori prestazioni dalla VM assegnandole 2 vCPU.


Non necessariamente: vedrai davvero prestazioni migliori solo se le applicazioni in esecuzione sulla VM sono in grado di sfruttare i sistemi multi-core. Sfortunatamente, anche se è il 2011, molte applicazioni no.
SEE

@ErikA Punto giusto: threading dell'applicazione a parte, sto solo dicendo che con solo 2 core fisici, 2 vCPU su una singola macchina virtuale sono sempre meglio di 4 vCPU.
Shane Madden

sì, il 100% era d'accordo su questo punto.
SEE

5

Abbiamo sperimentato qualche tempo fa ( vedi la mia domanda di un anno fa ) con l'assegnazione di vCPU da core fisici rispetto a core logici (thread) in CPU quad-core con hyperthreading (8 vCPU assegnabili sembravano essere disponibili). Come le risposte che ho ricevuto in seguito hanno suggerito - e la nostra esperienza è finita - dovresti assegnare il numero minimo di core che puoi a ciascun ospite per consentirgli di esibirsi.

Quando si assegnano più vCPU rispetto ai core fisici disponibili sull'host, se i guest erano sottoposti a caricamento simultaneo, l'hyperthreading non era sempre abbastanza veloce nel cambiare il contesto della CPU tra i thread per simulare efficacemente un'altra CPU. Questo può portare a cose molto brutte per tutti gli ospiti, inclusi blocchi e timeout che possono richiedere il riavvio, fsck e peggio in pila. Anche se queste cose non accadono, le prestazioni saranno spesso più lente per gli ospiti piuttosto che più veloci.

Come ha scritto @Chris S nel suo commento all'epoca, "alloca sempre il minimo che puoi cavartela ed eviterai grossi mal di testa".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.