¿Cuántos procesadores o núcleos virtuales debo asignar a mi SO invitado? [cerrado]

8

Acabo de recibir una máquina Host actualizada, y estoy tratando de llevar algunos de esos avances a mis sistemas operativos invitados de estaciones de trabajo. En particular, solía tener un único procesador, con 2 núcleos, por lo que mi sistema operativo invitado solo tenía 1/1.

Ahora, tengo un único procesador con 8 núcleos, así que tengo curiosidad acerca de lo que se recomendaría para mi SO invitado ahora.

  • 1 procesador / 4 núcleos?
  • 2 procesadores / 2 núcleos?
  • 4 procesadores / 1 núcleo?

Mi instinto dice que me quede con la cantidad de procesadores físicos (o menos), pero ¿se basa eso en la realidad? Pasé un buen rato buscando una respuesta a esto, pero quizás mi google-karma no está a mi favor hoy.

reidLinden
fuente
¿Su invitado está utilizando las capacidades de procesamiento que tiene como lo es ahora?
OldWolf
Este enlace puede ser útil, sugiriendo que haga coincidir su configuración con la configuración NUMA del host.
Glenn

Respuestas:

4

En mis propias pruebas, con VMWare Workstation, usando las últimas pruebas de 64 bits de GeekBench 3, en una máquina host con 1 CPU, 2 núcleos (con HT activado, entonces 4 núcleos):

Sistema host:

  • 2866 Puntaje de un solo núcleo, 5939 Puntaje de múltiples núcleos

Virtualizado:

  • 1 CPU, 1 núcleo: 2783 sc, 2705 mc
  • 1 CPU, 2 núcleos: 2758 sc, 4271 mc
  • 1 CPU, 3 núcleos: 2783 sc, 5234 mc
  • 1 CPU, 4 núcleos: 2769 sc, 5793 mc

Entonces, al menos en mis pruebas, parece que hay un beneficio al configurar su número virtual de núcleos para que coincida con sus núcleos físicos. Puede ser que esté equivocado. Me encantaría discutirlo.

Nicholas
fuente
Excelente investigación! Gracias. ¿Podría extender esta investigación para cubrir algunas de las otras opciones que destaqué en la publicación original? ¿Como un sistema virtual 2/2 y 4/1 (habiendo identificado que una salida 1/4 realiza configuraciones 1 / 4-)? Esa es la verdadera pregunta. Debería ir 1/4, 2/2 o 4/1 (suponiendo que vaya con 4 núcleos virtuales en general). Además, admitiré que no entiendo la diferencia en "puntaje de núcleo único" y "puntaje de núcleo múltiple" en cada uno de sus ejemplos. ¿Cómo puede una máquina 1cpu / 1core obtener una puntuación multi-core? Lo mismo para la situación 1cpu / 4core, a la inversa ...
reidLinden
2

No sé si esta información sigue siendo válida, pero en el pasado no hace mucho tiempo, las CPU invitados adicionales no escalaban tan bien como las CPU host. De hecho, la mejor recomendación era quedarse con CPU individuales en sus configuraciones de invitado a menos que estuviera probando / depurando específicamente el software multiproceso en sus invitados y requiriera un entorno SMP.

Editar: esta respuesta es particular a la virtualización de escritorio, no a la virtualización del servidor.

afrazier
fuente
Entonces, ¿estás diciendo 1 procesador, con un solo núcleo?
reidLinden
Si. ¿La estación de trabajo VMware permite establecer esos valores de forma independiente ahora? No lo he usado desde la versión 6, y era solo un número de CPU. Si va a hacer CPU multi-core / multi-CPU en sus invitados, dudo que importe mucho la forma en que escala las cosas a menos que entren en juego las consideraciones de licencia (# de "sockets" frente a # de "núcleos"). Por ejemplo, XP Home solo permite 1 zócalo, pero hasta 4 núcleos, mientras que XP Pro permite 2 zócalos.
Afrazier
sí, parece que tengo la opción de elegir "# procesadores" y "# núcleos" de forma independiente ... Mi máquina host tiene 1 procesador con 8 núcleos, en un Windows7 Professional, y mi (principal) guestOS es un servidor Windows 2003. ..
reidLinden
0

A lo sumo le doy a mis invitados OS 2 núcleos. No importa si haces 1 procesador 2 núcleos o 2 procesadores 1 núcleo cada uno. La configuración del procesador es por razones de compatibilidad. Los procesadores / núcleos no se escalan tan bien para el sistema operativo invitado debido a la programación del proceso de núcleo / procesador. 2 núcleos parece ser el punto ideal.

Metril
fuente
Desea evitar tener un procesador y un núcleo para una VM porque si alguna operación que el sistema operativo host no espera bloquear inesperadamente bloquea en el host, se bloquea toda la VM.
David Schwartz
0

Hay poca diferencia en este punto. En algunos casos, las licencias de software pueden depender de núcleos o CPU.

Virtualizado: 1 cpu, 1 núcleo: 2783 sc, 2705 mc 1 cpu, 2 núcleos: 2758 sc, 4271 mc 1 cpu, 3 núcleos: 2783 sc, 5234 mc 1 cpu, 4 núcleos: 2769 sc, 5793 mc Entonces, al menos En mis pruebas, parece que hay un beneficio al configurar su número virtual de núcleos para que coincida con sus núcleos físicos. Puede ser que esté equivocado. Me encantaría discutirlo.

Esto es solo en un punto de referencia que utiliza todos los núcleos. La mayoría de las aplicaciones no escalan el rendimiento linealmente con el conteo de núcleos, ya que simplemente no usan los núcleos adicionales.

También hay cierto nivel de sobrecarga al agregar más núcleos. En resumen, solo agregue la cantidad de núcleos que su aplicación necesita para desempeñarse en los niveles que necesita. El hecho de que tenga 4 núcleos en su host no significa que todas las máquinas virtuales deben obtener 4 núcleos.

En varios de los entornos que administro tenemos CPU duales de 10 núcleos con un total de 40 hilos lógicos y mis controladores de dominio solo obtienen dos núcleos.

Curtis
fuente
-2

Estoy bastante sorprendido de que estas preguntas frecuentes no hayan sido respondidas completamente por ahora. Su CPU host debería admitir algunas tecnologías de virtualización, por ejemplo, Intel VTx. Eso le permite "tunelizar" toda la potencia de la CPU en su sistema operativo invitado. De lo contrario, habrá una enorme caída de velocidad debido a la emulación de una CPU. Si tiene una CPU con hyperthreading, debería ver 8 procesadores para una CPU de cuatro núcleos en el administrador de dispositivos de su máquina host (hyperthreading duplica el número de sus núcleos). En ese caso, puede asignar 1 procesador con 4 núcleos para su sistema operativo invitado. Mientras no tenga ningún otro procesador físico en su sistema, no asigne más de 1 procesador a su máquina virtual. Puede asignar más o menos núcleos a su sistema operativo invitado, según sus necesidades, pero no debe t asigne un valor más alto que sus núcleos hyperthreading. Pero tenga en cuenta que su host también necesita algo de potencia de CPU. Por lo general, configuro el número medio de mis núcleos hyperthreading y el número medio de mi memoria, por ejemplo, 8192 MB cuando tienes 16 Gig de RAM. Esta suele ser una buena configuración, pero no si desea ejecutar más de una máquina virtual a la vez.

martinjohannes93
fuente