Stiamo usando Ubuntu 12.04 con i seguenti parametri:
- Dell R910
- Kernel 3.2.0-25-generic # 40-Ubuntu SMP x86_64 x86_64 x86_64 GNU / Linux
- kvm 1: 84 + dfsg-0ubuntu16 + 1.0 + noroms + 0ubuntu13
- qemu-kvm 1.0 + noroms-0ubuntu13
- qemu-common 1.0 + noroms-0ubuntu13
- qemu-kvm 1.0 + noroms-0ubuntu13
- 4 CPU Intel (R) Xeon (R) E7- 4870 a 2,40 GHz (ciascuna con 10 core fisici, HT e Intel VT abilitati)
- I guest Windows attualmente non hanno VirtIO, ma questo cambierà presto
Stiamo eseguendo diversi guest Windows su questa macchina, uno di questi è Windows 2003 32 bit, un altro Windows 2008 (64 bit). Attualmente siamo alle prese con problemi di prestazioni e ci siamo divertiti con i modelli di CPU.
Di solito utilizziamo "qemu-system-x86_64 per il nostro guest a 32 bit di Windows, ad esempio:
/usr/bin/qemu-system-x86_64 -S -M pc-1.0 -cpu qemu32 -enable-kvm -m 4096 -smp 4,sockets=4,cores=1,threads=1 [...]
Le prestazioni di questo ospite si sono rivelate un po 'basse. Non abbiamo ancora eseguito alcun benchmark, ma diciamo che copiare una grande quantità di dati (file) all'interno della VM da una directory all'altra va molto più veloce quando si passa il modello di CPU da "-cpu qemu32" a "-cpu Nehalem ". I file che hanno impiegato circa 2: 40 ore per essere copiati ora vengono copiati entro 40 minuti. Ovviamente questo non è un test di alta qualità e c'è molto spazio per un tentativo più professionale. Ma questo è un chiaro indicatore che la scelta del modello di CPU corretto potrebbe influire pesantemente sulle prestazioni del guest.
Ora mi sono incuriosito e ho corso:
qemu-x86_64 -cpu ?
x86 [n270]
x86 [athlon]
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo]
x86 [kvm32]
x86 [qemu32]
x86 [kvm64]
x86 [core2duo]
x86 [phenom]
x86 [qemu64]
E:
kvm -cpu ?model
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 [n270] Intel(R) Atom(TM) CPU N270 @ 1.60GHz
x86 [athlon] QEMU Virtual CPU version 1.0
x86 [pentium3]
x86 [pentium2]
x86 [pentium]
x86 [486]
x86 [coreduo] Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 [kvm32] Common 32-bit KVM processor
x86 [qemu32] QEMU Virtual CPU version 1.0
x86 [kvm64] Common KVM processor
x86 [core2duo] Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz
x86 [phenom] AMD Phenom(tm) 9550 Quad-Core Processor
x86 [qemu64] QEMU Virtual CPU version 1.0
Con tutte queste diverse versioni, è un po 'difficile indovinare. "Nehalem" sembra essere il più performante in quella lista. Ora mi chiedo, come dire quale modello di CPU è il migliore per il mio ospite? Navigando in Internet, ho trovato le seguenti risorse:
- http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
- http://www.linux-kvm.org/page/Tuning_KVM
Quando leggo questi siti correttamente, affermano che "-cpu host" potrebbe offrire le migliori prestazioni. Non ho ancora dubbi sulla migrazione, poiché entrambi gli host KVM sono equipaggiati allo stesso modo (esattamente lo stesso hardware).
Quindi, cosa raccomandano gli amministratori esperti di KVM? Esiste una regola d'oro o addirittura una matrice, come "questo modello è il migliore per quel SO guest"?
Mi scuso se ho potuto scoprire queste informazioni da solo: ho eseguito varie ricerche su Google e navigato su molti siti Web. Non sono riuscito a trovare qualcosa che risponda alla mia domanda.