¿La configuración de una VM con más de 1 CPU / núcleo realmente mejorará el rendimiento?

11

Cuando uso la estación de trabajo VMware, puedo configurar la VM con múltiples núcleos. De hecho, lo estoy usando en una máquina con doble núcleo y 4 núcleos lógicos. Entonces, ¿realmente mejoraría el rendimiento de VMS al usar más núcleos en la VM?

Pete2k
fuente
3
Vale la pena recordar una cosa al dimensionar invitados virtuales: si hubiera beneficiado la instalación en una máquina real, entonces la beneficiará como máquina virtual y viceversa. Y lo más importante de todo: nada mágico sucede con los requisitos del sistema o la aplicación solo porque virtualizó algo .
Rob Moir

Respuestas:

8

depende de lo que esté ejecutando la máquina virtual, un invitado en una máquina con n número de núcleos funcionará mejor en n-1 núcleos asignados siempre que el invitado sea capaz de utilizar múltiples CPU de manera efectiva. Desafortunadamente, la forma más sencilla de determinar esto es probarlo y ver. Normalmente comienzo con 2 y me detengo cuando me quedo sin aumento de rendimiento. Por lo general, 2 núcleos es donde veo el "punto óptimo". Pocas combinaciones de aplicaciones / os que he encontrado se escalarán mejor que eso.

Jim B
fuente
6

Para aclarar, ¿estás diciendo que tienes una CPU de doble núcleo y que has asignado 4 CPU virtuales en la VM?

En este caso, no; si asigna más vCPU de las que tiene núcleos de ejecución física, en realidad verá una ligera reducción en el rendimiento debido a la sobrecarga de compartir los 2 núcleos físicos entre 4 núcleos virtuales (más todo lo que se ejecuta en el host físico).

Verá el mejor rendimiento de la VM al asignarle 2 vCPU.

Shane Madden
fuente
No necesariamente: realmente solo verá un rendimiento mejorado si las aplicaciones que se ejecutan en la VM pueden aprovechar los sistemas de múltiples núcleos. Desafortunadamente, aunque es 2011, muchas aplicaciones no lo hacen.
EEAA
@ErikA Fair point: dejando de lado las aplicaciones, solo digo que con solo 2 núcleos físicos, 2 vCPU en una sola VM siempre es mejor que 4 vCPU.
Shane Madden
Sí, 100% de acuerdo en ese punto.
EEAA
5

Experimentamos hace un tiempo ( vea mi pregunta de hace un año ) con la asignación de vCPU a partir de núcleos físicos frente a núcleos lógicos (hilos) en CPU de cuatro núcleos con hyperthreading (8 vCPU asignables parecían estar disponibles). Como las respuestas que obtuve en ese momento sugirieron, y nuestra experiencia se confirmó, debe asignar el número mínimo de núcleos que pueda a cada invitado para permitir que funcione.

Al asignar más vCPU que núcleos físicos disponibles en el host, si los invitados se encontraban bajo carga simultánea, el hyperthreading no siempre era lo suficientemente rápido para cambiar el contexto de CPU entre hilos para simular efectivamente otra CPU. Esto puede llevar a cosas muy desagradables para todos los invitados, incluidos bloqueos y tiempos de espera que pueden requerir reiniciar, fsck y, peor aún, en la pila. Incluso si esto no sucede, el rendimiento a menudo será más lento para los invitados en lugar de más rápido.

Como dijo @Chris S en su comentario en aquel entonces, "siempre asigna lo menos que puedas y evitarás grandes dolores de cabeza".

nedm
fuente