
Nuestro departamento de TI creó una máquina virtual con 2 CPU asignadas en lugar de las 4 que solicité. Su razón es que la VM funciona mejor con 2 CPU en lugar de 4 (según ellos). La razón es que el hipervisor de VM (VMWare en este caso) espera a que todas las CPU estén disponibles antes de activar cualquiera de ellas. Por lo tanto, se necesita más tiempo para esperar 4 CPU en lugar de 2.
¿Tiene sentido esta afirmación?
Respuesta1
Esto solía ser cierto, pero ya no es exclusivamente cierto.
A lo que se refieren esEstricta programación conjunta.
Lo más importante de todo es que, en el estricto algoritmo de programación conjunta, la existencia de una vCPU retrasada hace que toda la máquina virtual se detenga conjuntamente. En el algoritmo relajado de programación conjunta, una vCPU líder decide si debe detenerse conjuntamente en función del sesgo frente a la vCPU hermana más lenta.
Ahora,siel host solo tiene 4 subprocesos, entonces sería una tontería asignarlos todos.Sitiene dos procesadores y 4 subprocesos por procesador, entoncespodríaNo desea asignar todo el contenido de un solo procesador, ya que su hipervisor debería intentar mantener las vCPU en el mismo nodo NUMA para acelerar el acceso a la memoria, y está dificultando este trabajo al asignar un socket completo a una sola VM. (Consulte la página 12 de ese PDF arriba).
Entonces, hay escenarios en los que se necesitan menos vCPU.poderfuncionan mejor que más, pero no es cierto el 100% de las veces.
Dicho y hecho todo esto, muy rara vez asigno más de 3 vCPU por invitado. Todos obtienen 2 de forma predeterminada, 3 si se trata de una carga de trabajo pesada y 4 para cosas como servidores SQL o máquinas virtuales de procesamiento por lotes realmente pesadas, o un servidor de terminal con muchos usuarios.
Respuesta2
Esto depende en gran medida del hipervisor subyacente y de los administradores que lo ejecutan. Permítanme explicarles:
- Es una mala práctica darle arbitrariamente 4 CPU solo porque usted lo solicitó. En términos generales, ustedpensarnecesitas 4; pero el monitoreo de recursos dice que solo necesitas 1.
- VMware ESXi por ejemplorequiere bloquear todas las pCPU cuando una vCPU realiza una solicitud de recursos de CPU; entonces en este hipervisor es malo para el rendimiento. KVM no bloquea como lo hace ESXi; utiliza el programador del kernel subyacente, pero aún así, a largo plazo, puede crear contención de CPU.
- Si está construyendo sistemas desde el principio con 4 CPU, en realidad no está ampliando, sino aumentando (lo cual es una mala práctica, especialmente en máquinas virtuales). Es posible que desee verificar cómo está diseñando lo que sea en lo que esté trabajando para que pueda construirse para escalar a las infraestructuras de nube modernas de hoy.
¿Qué puedes aprender de esto? Cree siempre máquinas virtuales con recursos mínimos y aumente según sea necesario. Siempre amplíe la escala en lugar de aumentarla y podrá ejecutar su aplicación en cualquier lugar.
Debido al bloqueo que se puede experimentar con el hipervisor, es cierto que 2 CPU pueden ser más rápidas que 4 CPU.
Respuesta3
Sí, la afirmación tiene sentido en general. Sin embargo, es algo que debes probar para tu configuración y carga de trabajo exactas. A veces, tener más CPU es mejor si realmente puedes aprovecharlas. Sin embargo, si en realidad no tiene tanto paralelismo, una máquina virtual configurada con menos CPU a menudo funcionará un poco mejor, ya que evita ralentizaciones debido a pausas en el estado de preparación de la CPU.
Reduje las vCPU en varias de nuestras máquinas virtuales y observé una mejora en el rendimiento en la mayoría. Algunos empeoraron y fue necesario aumentar el número de vCPU.