Estamos usando Ubuntu 12.04 con los siguientes parámetros:
- Dell R910
- Kernel 3.2.0-25-genérico # 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 a 2.40 GHz (cada una con 10 núcleos físicos, HT e Intel VT habilitados)
- Los invitados de Windows actualmente no tienen VirtIO, pero eso cambiará pronto
Estamos ejecutando varios invitados de Windows en esta máquina, uno de ellos es Windows 2003 32 Bit, otro Windows 2008 (64 Bit). Actualmente estamos luchando con problemas de rendimiento y jugamos con los modelos de CPU.
Usualmente usamos "qemu-system-x86_64 para nuestro invitado de Windows 32 Bit, por ejemplo:
/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 [...]
El rendimiento de este invitado resultó ser un poco bajo. Todavía no ejecutamos ningún punto de referencia, pero digamos que copiar una gran cantidad de datos (archivos) dentro de la VM de un directorio a otro va mucho más rápido cuando cambiamos el modelo de CPU de "-cpu qemu32" a "-cpu Nehalem ". Los archivos que tomaron alrededor de 2: 40h para copiar ahora se copian en 40 minutos. Por supuesto, esta no es una prueba de alta calidad y hay mucho espacio para un intento más profesional. Pero este es un claro indicador de que elegir el modelo de CPU correcto podría afectar en gran medida el rendimiento del huésped.
Ahora tengo curiosidad y corrí:
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]
Y:
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 todas estas versiones diferentes, es un poco difícil de adivinar. "Nehalem" parece ser el más eficaz en esa lista. Ahora me pregunto, ¿cómo saber qué modelo de CPU es el mejor para mi invitado? Navegando por Internet, encontré los siguientes recursos:
- http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
- http://www.linux-kvm.org/page/Tuning_KVM
Cuando leo esos sitios correctamente, afirman que "-cpu host" podría ofrecer el mejor rendimiento. Todavía no me preocupa la migración, ya que ambos hosts KVM están equipados por igual (exactamente el mismo hardware).
Entonces, ¿qué recomiendan los administradores experimentados de KVM? ¿Existe una regla de oro o incluso una matriz, como "este modelo es el mejor para ese SO huésped"?
Mis disculpas si pudiera encontrar esta información por mi cuenta: realicé varias búsquedas en Google y navegué por muchos sitios web. No pude encontrar algo que responda a mi pregunta.