Pregunta

La virtualización de servidores es una gran cosa hoy en día, por lo que tengo la tarea de instalar parte de nuestro software en un servidor virtualizado y ver qué sucede.Larga historia corta:a rsync La transferencia rápidamente pone de rodillas al servidor virtualizado.El host de virtualización es una máquina robusta sin otra carga;No creo que esto debería estar sucediendo. Top muestra promedios de carga altos y la CPU iowait está cerca del 100%.Hay un enorme cuello de botella en alguna parte.

Soy más un programador que un administrador de sistemas, me falta el conocimiento sobre cómo solucionar este problema fuera de la búsqueda aleatoria en Google.Sospecho que no estoy solo en esto.

Lo que me gustaría ver aquí son consejos generales sobre virtualización y sugerencias sobre buenos artículos y otros recursos, que yo y otros podríamos utilizar para educarnos.

  • ¿Qué herramientas (incluso las herramientas estándar de Unix) se pueden utilizar para identificar cuellos de botella?
  • ¿Qué métricas se deben seguir para garantizar que todo funcione sin problemas?
  • ¿Qué tipo de cosas se pueden virtualizar de manera eficiente?
  • ¿Qué tipo de configuraciones están condenadas al fracaso?

Pido disculpas por la amplitud de la pregunta.Simplemente no tengo el conocimiento para hacer preguntas específicas útiles sobre esto.

Editar:Más sobre mi problema específico:

  • Paravirtualización XAN, 3 x CentOS invitado
  • Todos los invitados en discos SCSI locales, hay un controlador raid completamente de hardware
  • rsyncd se ejecuta en 1 sistema operativo invitado, la transferencia se inicia desde un servidor remoto no virtualizado a través de una LAN de 100 Mbps

Como dije antes, realmente no puedo proporcionar muchos datos útiles.Realmente no espero obtener una solución directa a este problema; me encantaría recibir sugerencias sobre dónde comenzar a desarrollar las habilidades necesarias para comprender mejor este tipo de problemas.

¿Fue útil?

Solución

Iba a poner esto en un comentario, pero creo que es más útil al aire libre:

¿Podría agregar más detalles sobre su configuración?

  • ¿Qué servidor VM?
    (VMware Server, VMware ESX, MS VirtualServer, MS Hyper-V, ¿algo más?)
  • ¿Qué sistema operativo para los invitados?
    (¿Windows, Linux, 32 bits, 64 bits?)
  • ¿Dónde se almacenan los invitados?
    (¿Disco local o en un NAS o SAN?)
  • ¿Estaba sincronizando entre invitados en el mismo servidor VM o entre un invitado y un servidor físico?
  • Si es a través de una red, ¿qué tan rápida es la red?

El ajuste del rendimiento en cualquier entorno consiste en un 90 % en la recopilación de datos y en un 10 % en el análisis.Los entornos virtualizados tienen más variables a considerar que los entornos físicos, pero lo más importante es que tienen una curva de respuesta diferente a la de los entornos físicos.Algunas aplicaciones pueden funcionar mejor en un entorno virtualizado que en un entorno físico;otros no lo harán.Debe comprender los requisitos de la aplicación, así como las limitaciones de la implementación.

No creo que existan aplicaciones de software que no puedan implementarse exitosamente en servidores virtuales, si prestas atención a los detalles.(Las aplicaciones que requieren hardware personalizado que no se puede virtualizar exitosamente son un problema diferente).

Otros consejos

Utilizo rsync para mantener sincronizadas algunas partes de nuestro (muy nuevo) entorno virtual sin ningún problema.No creo que sea tanto un problema de virtualización como un problema de E/S, que parece que ya has identificado.

Descubrí que la virtualización es muy, muy agotadora para los discos duros, y esto solo empeora cuanto más invitados tienes en el equipo host.Para máquinas que requieren mucha E/S, considere segmentar su acceso al disco lejos de los otros hosts.¿Está utilizando algún tipo de tecnología SAN?Descubrimos que esto es muy útil en mi lugar de trabajo (estamos usando dos servidores Sun Intel de 8 núcleos y una matriz iSCSI de 12 discos de 1 TB).

¿Su hardware es totalmente compatible con el proveedor de software de virtualización?Si está intentando ejecutar en hardware no compatible, es muy probable que su controlador de disco no utilice los mejores controladores, lo que explicaría sus accesos lentos al disco.

Puedes usar iostat en Linux/Unix para obtener comentarios sobre la E/S, y hay iotop también, aunque todavía no está incluido en muchas distribuciones.

De antemano diría que esto es un problema de E/S.En entornos virtuales, uno de los factores más importantes que afecta el rendimiento es el estado del disco de la máquina host.Las cosas que hacemos para optimizar el rendimiento son:

  1. Asignación de disco fijo.De esta manera, obtienes un bloque contiguo de espacio en el disco para que viva la VM.
  2. Programe una desfragmentación del sistema operativo VM Slice y de la unidad del servidor host.La fragmentación es tu enemigo.
  3. Asegúrese de finalizar correctamente las sesiones del servidor.Al rebotar el sistema operativo virtual, NO apague simplemente el segmento de VM, ya que esto causa una gran fragmentación del disco.El sistema operativo virtual debe realizar el proceso de apagado/reinicio.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top