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".