Limitazioni del processore Hyper-V


14

Di recente abbiamo acquistato un server che esegue Hyper-V 2008 R2 bare metal. Il server ha due processori Intel Xeon quad-core con hyperthreading, quindi se ho capito bene questo ci dà 16 core. All'interno di Hyper-V abbiamo creato una macchina virtuale che esegue Windows Server 2008 R2 con 4 processori virtuali. La schermata delle impostazioni del processore mi dice che ciò rappresenta il 25% della potenza totale di elaborazione del sistema. Questo significa che il restante 75% non può essere sfruttato dal sistema operativo virtuale? Eseguiremo alcune altre macchine virtuali, ma questa è per SQL Server e vorremmo lanciare più potenza possibile.


5
Si desidera prestare molta attenzione all'allocazione di vCPU su una macchina. Significa che la macchina virtuale deve attendere fino a quando non ci sono 4 processori fisici disponibili contemporaneamente prima che possa essere eseguita. Vedi qui
Holocryptic,

6
Per quanto riguarda Hyperthreading, dai un'occhiata a questo eccellente primer: arstechnica.com/old/content/2002/10/hyperthreading.ars
Hyppy,

4
Olocryptic, la tua affermazione era vera per i vecchi sistemi VMWare, ma non è mai stata vera per Hyper-V. Hyper-V non "programma in gruppo" i processori virtuali.
Jake Oshins,

Risposte:


15

Una vCPU può essere mappata solo su una singola CPU fisica. Non puoi prendere 4 CPU fisiche e creare una singola vCPU 4 volte più veloce; non è come funziona.

Hyper-V è limitato all'assegnazione di 4 vCPU a una macchina virtuale (l'ultima volta che ho controllato). Se hai bisogno di una notevole potenza della CPU, diventa fisico, non ha senso aggiungere l'overhead di virtualizzazione a qualcosa che CPU intensiva e parallela in primo luogo.

Inoltre, come osserva Holocryptic, se si assegnano 4 vCPU a una VM, quella VM non può essere eseguita fino a quando Hyper-V non ha acquisito 4 core fisici della CPU su cui eseguirli. A seconda della configurazione, questo potrebbe essere un grosso ostacolo (ad esempio, se si dispone di una macchina a 6 core con un gruppo di 4 VM vCPU, solo una verrà mai eseguita alla volta, gli altri due core rimarranno sostanzialmente inutilizzati). Secondo Jake Oshins questo non era vero per nessuna versione di Hyper-V. Dichiara che Hyper-V non utilizza la pianificazione di gruppo per la CPU; come quasi tutti gli altri hypervisor. Di conseguenza, se è disponibile un core CPU fisico, Hyper-V può utilizzarlo per eseguire una VM con più CPU. (Inoltre, Hyper-V potrebbe non utilizzare tutti i core fisici disponibili al momento a causa del partizionamento NUMA)

Nota a margine: SQL non utilizza necessariamente tutti i core che puoi lanciare in primo luogo. Dipende davvero da cosa lo stai usando e da quanto parallelamente è il carico.


Sono d'accordo, ma il sovraccarico sulle CPU virtuali è quasi nulla e raramente entra in gioco.
Nate,

4
Chris, la nota di Holocryptic è semplicemente sbagliata. Hyper-V non attende fino a quando non ci sono 4 CPU virtuali libere prima di pianificare un processore virtuale da una VM a 4 VP. Hyper-V pianifica un processore virtuale ogni volta che ha un processore fisico libero per eseguirlo, con alcuni avvertimenti. Ad esempio, cerca processori fisici all'interno dello stesso nodo NUMA fisico del resto della VM.
Jake Oshins,

3

Sì, quello che ha detto Chris. Se hai bisogno di più di 4 CPU in una macchina virtuale Hyper-V, crea due server SQL virtuali e distribuisci i tuoi database o diventa fisico. A seconda della licenza del server SQL, potresti essere in grado di aggiungere più server SQL in virtuale (sullo stesso host fisico) senza incorrere in maggiori costi di licenza, ma leggi il white paper sulle licenze virtuali SQL per ulteriori informazioni.

Concordo anche sul fatto che se si dispone di SQL che esaurisce la potenza della CPU con 4 CPU virtuali, si ha un serio utilizzo delle app o i comandi SQL sono scritti male.


1
Ri: "... oppure i comandi SQL sono scritti male." Questo è quasi garantito, ogni volta che è in gioco il codice fornito dal fornitore.
Skyhawk,

In effetti, la maggior parte del traffico di database è roba OLTP dal nostro sistema ERP. Abbiamo anche un sistema di flusso di lavoro dello stesso fornitore. Il materiale personalizzato scritto internamente è una piccola percentuale.
Scott,

Il nostro vecchio database sta funzionando al massimo su 4 core logici (due CPU dual-core), quindi ci aspettiamo di aver bisogno di più.
Scott,

0

Circa 4 limiti core della CPU:

Nella sezione del file di configurazione della VM:

[processori] [count type = "integer"] 16 [/ count]

Ora hai 16 CPU core.

AGGIORNAMENTO: sembra necessario lo screenshot

inserisci qui la descrizione dell'immagine


0

segui questa guida

http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/

è possibile individuare il file di configurazione vm xml nella directory "Macchine virtuali" della directory VHD della VM, il file di configurazione verrà denominato nell'ID della VM. Di seguito il link è un riferimento.

riferimento: file di configurazione xml VM

assicurati di modificare il file di configurazione xml VM con notepad / notepad ++ aperto sotto i privilegi di amministratore

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.