4 votos

¿Cómo encontrar los cuellos de botella en el rendimiento de virtualización?

Recientemente se ha empezado a mover nuestra compilación de C++ servidor(s) de las máquinas en las máquinas virtuales. (MS Hyper-V)

Tenemos algunos problemas de rendimiento que he actualmente ni idea de cómo abordar. Tenemos:

  • Test-Box - este es un pedazo de escritorio estación de trabajo de hardware de mi compañero de trabajo se utiliza para configurar la máquina virtual antes de que lo trasladó a la actual hardware de servidor
  • Srv-Box - este es el hardware del servidor
  • Test-Box-Real - Este es el Windows que se ejecuta directamente en la Prueba-Cuadro de HW
  • Test-Box-VM - Esto es Windows en un host de Hyper-V VM en la Prueba-Cuadro de HW
  • Srv-Box-Real- Esto es Server2008R2 que se ejecutan en el Srv-Cuadro de HW.
  • Srv-Box-VM- Este es el Windows que se ejecuta en un host de Hyper-V VM en el Srv-Cuadro de HW, es decir, en Srv-Cuadro-Real.

Ahora, el problema es que se compararon los tiempos de construcción entre Test-Box-Real y Test-Box-VM y eran básicamente iguales (aproximadamente 2%).

Luego nos mudamos de la máquina virtual a la Srv-Cuadro de la máquina y lo que vi allí es que tenemos una degradación significativa del rendimiento entre Srv-Box-Real y Srv-Box-VM, es decir, donde no vimos diferencias en la Prueba de HW ahora vamos a hacer ver las principales diferencias en el rendimiento en el Servidor real HW. (Construye sobre ~~ 50% más lento dentro de la VM.)

Debo añadir que tanto la Prueba de Caja y el Srv-Cuadro sólo se ejecuta este una sola máquina virtual y no hacer nada más.

También debo señalar que el "Real" OS es Win2008R2(64bit) y la máquina virtual alojada OS es Wind2003R2(32 bits).

Especificaciones de Hardware:

  • Srv-Box:

    • Intel XEON E5640 @ 2.67 Ghz (Esto significa que 8 núcleos con hyperthreading en el sistema Real y "sólo" 4 núcleos en la VM, ya que Hyper-V no se permite para hyperthreading, pero el número de núcleos no parecen explicar el problema aquí.)
    • 16GB de RAM (tenemos 4 GB asignado a la máquina virtual)
    • Virtual DELL RAID 1 (2x 450 HUS156045VLS600 Hitachi 15k SAS unidades)
  • Test-Box:

    • Intel XEON E31245 @ 3.3 GHz
    • 16GB DE RAM
    • WD VelociRaptor 600 GB 10k RPM SATA

Observe de nuevo que sólo estoy preocupado con las diferencias entre Srv-Cuadro-Real y Srv-Cuadro-VM (alta) frente a las diferencias visto por cierto. Prueba de la Caja Real y Prueba de Box-VM (bajo).

¿Por qué una máquina de paridad cuando se comparan VM vs Real del rendimiento y la otra (servidor grado HW no menos) tienen una gran disparidad? (Ambos XEON CPUs ...)

2voto

TomTom Puntos 38586

Empezar con lo obvio - supervisar los contadores de rendimiento, si es posible el uso de Recursos MOnitor. Cómo es la CPU, IO manipulación? El estándar de" cuello de botella es bastante IO, y de su 2 unidades de sonido como muy mala IO para cualquier cosa que tenga más de 2-3 VM, especialmente cuando algo brutal como un servidor de compilación de C++ golpea (que es PESADO IO base, los compiladores en general ,pero C++ es bastante extensa en este área - yo uso un SSD solo para la construcción).

Esta es la norma Admin - no hay nada especial acerca de una VM en este punto. Básicamente, para encontrar el cuello de botella que buscarlo primero.

IO puede también - discos dinámicos. Ayuda a poner en una dinámica no SÓLO disco para el paso de generación (archivos de trabajo). Hay un montón de IO sucediendo allí.

Ahora, sí, un Raptor tiene menos de IOPS de un 15k SAS, pero entonces es probable que NO se COMPARTE.

¿SRV-HW utilizar todos los núcleos de la CPU? Otro elemento, a continuación,...

Con respecto a su límite de CPU, por cierto., la ACTUAL versión de Hyper-V admite un MONTÓN más núcleos de 4 por VM, por lo que una actualización puede estar en orden... Server 2012 está disponible para casi todos a no comprar una caja en una tienda de la derecha ahora, tengo mi copia del 16 de agosto de la MS de los repositorios.

Pero primero haces de funcionamiento normal, paso por paso - encontrar donde esta el cuello de botella es mediante el uso de recursos y monitor de rendimiento

1voto

M Afifi Puntos 657

Tuve un problema similar en el pasado, lo rastreamos para escribir en caché Inhabilítelo en su servidor físico y pruébelo otra vez.

La otra cosa a tener en cuenta es que simplemente estás luchando contra muchas diferencias,

  1. VM
  2. Memoria diferente
  3. Diferentes discos (VHD vs. Físico)

Elimina todos los que puedas y vuelve a intentarlo.

0voto

Martin Puntos 198

Compruebe la configuración de BIOS wrt. actuación. (Lo cambiamos de "Personalizado" a "Rendimiento completo").

Descubrimos que en este servidor, el sistema no detectó carga completa cuando la carga completa provenía de la máquina virtual Hyper-V, lo que significa que el procesador avanzó a 1,6 GHz en lugar de funcionar a pleno potencial. Speed ​​Stepping funcionó cuando se ejecutaba en el sistema operativo "real": de ahí surgió la diferencia hasta donde sabemos.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: