Nous utilisons Ubuntu 12.04 avec les paramètres suivants:
- Dell R910
- Noyau 3.2.0-25-générique # 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 x CPU Intel (R) Xeon (R) E7- 4870 à 2,40 GHz (chacun avec 10 cœurs physiques, HT et Intel VT activés)
- Les invités Windows n'ont actuellement pas de VirtIO, mais cela va bientôt changer
Nous exécutons plusieurs invités Windows sur cette machine, l'un d'eux est Windows 2003 32 bits, un autre Windows 2008 (64 bits). Nous sommes actuellement aux prises avec des problèmes de performances et avons joué avec les modèles de CPU.
Nous utilisons généralement "qemu-system-x86_64 pour notre invité Windows 32 bits, par exemple:
/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 [...]
La performance de cet invité s'est avérée un peu faible. Nous n'avons pas encore exécuté de référence, mais disons que la copie d'une grande quantité de données (fichiers) à l'intérieur de la machine virtuelle d'un répertoire à l'autre va beaucoup plus vite lorsque nous basculons le modèle de processeur de "-cpu qemu32" vers "-cpu Nehalem ". Les fichiers qui ont pris environ 2: 40h à copier copient maintenant dans les 40 minutes. Bien sûr, ce n'est pas un test de haute qualité et il y a beaucoup de place pour une tentative plus professionnelle. Mais c'est un indicateur clair que le choix du modèle de processeur correct pourrait affecter considérablement les performances de l'invité.
Maintenant, je suis devenu curieux et j'ai couru:
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]
Et:
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
Avec toutes ces différentes versions, c'est un peu difficile à deviner. "Nehalem" semble être le plus performant de cette liste. Maintenant, je me demande comment savoir quel modèle de processeur est le meilleur pour mon invité? En naviguant sur Internet, j'ai trouvé les ressources suivantes:
- http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
- http://www.linux-kvm.org/page/Tuning_KVM
Quand j'ai lu ces sites correctement, ils prétendent que "-cpu host" pourrait apporter les meilleures performances. Je n'ai pas encore de soucis concernant la migration, car les deux hôtes KVM sont équipés de la même manière (exactement le même matériel).
Alors, que recommandent les administrateurs KVM expérimentés? Existe-t-il une règle d'or ou même une matrice, comme "ce modèle est le meilleur pour cet OS invité"?
Mes excuses si je pouvais trouver ces informations par moi-même - j'ai effectué diverses recherches sur Google et parcouru de nombreux sites Web. Je n'ai pas pu trouver quelque chose qui réponde à ma question.