Estacionamiento de CPU de ESXi y Windows Server

10

Para aquellos que no lo saben, el estacionamiento de la CPU es una característica en los últimos lanzamientos de Windows Server que permite a Windows dejar prácticamente sin uso un núcleo de la CPU y no tener nada que usar. Se ha introducido como una medida de ahorro de energía. Hay más detalles al respecto aquí , entre otros lugares.

Sin embargo, lo que tengo curiosidad es si esto importa en un huésped virtualizado, o si el estacionamiento de la CPU es más un obstáculo que una ayuda, dado que las CPU físicas son administradas por ESXi, no por Windows, y que es menos probable que una CPU estacionada lidiar con el tráfico a menos que el planificador considere que hay suficiente trabajo para eliminar la CPU?

No he encontrado nada sobre esto: sospecho que se basará en gran medida en una carga de trabajo determinada, pero no he visto ninguna discusión (a diferencia, por ejemplo, de si el hiperproceso tiene algún efecto, lo que parece discutirse regularmente ) Si bien entiendo la "prueba con su carga de trabajo", me preguntaba si había algún consejo / guía por ahí que me haya perdido.

Chris J
fuente
1
Dudo que una VM pueda decirle a los núcleos físicos que se vayan a dormir. Si esto pudiera hacerse, lo haría el hipervisor independiente de la VM.
LatinSuD
Exactamente, por eso estoy haciendo la pregunta, no puedo ver el punto de estacionamiento en una máquina virtual, ¿debería estacionarse deshabilitado?
Chris J
¿Qué versión de ESXi? ¿Cuál es el uso de la CPU, tanto en la máquina de su desarrollador que mencionó en uno de los comentarios como en la VM? ¿Qué modelos de CPU se utilizan en la máquina de su desarrollador y en su host ESXi? No sé si esta información ayudará, pero podría.
Mario Lenz

Respuestas:

11

Definitivamente intente ajustar el tamaño de sus máquinas virtuales .

Si tiene suficientes CPU virtuales libres para preocuparse por el "estacionamiento de la CPU", es posible que tenga demasiadas asignadas a la VM.

No es una solicitud común, por lo que confiaría en las herramientas tradicionales de administración de recursos a menos que actualmente tenga un problema de rendimiento.

Editar:

Usted está teniendo un problema de rendimiento.

  • Asegúrese de tener instaladas las herramientas de VMware.
  • Establezca sus Opciones de energía de VM de Windows en Alto rendimiento

ingrese la descripción de la imagen aquí

ewwhite
fuente
2
Es algo que hemos visto en una plataforma bajo una carga de CPU bastante pesada: una aplicación multiproceso no parece estar utilizando todas las vCPU, con el administrador de recursos marcando un par como "estacionado" (a pesar de que hay hilos más que suficientes en cola para ejecutarse). Es la primera vez que tenemos que reflexionar sobre si el estacionamiento y las máquinas virtuales realmente son un problema: el desarrollador en su máquina (físico) ve que el mismo código usa todos los núcleos (más núcleos de los que hay en la máquina virtual). Nos estamos rascando un poco la cabeza y solo queríamos explorar este aspecto en particular.
Chris J
@ChrisJ Vea mi edición arriba.
ewwhite
Esto parece haber hecho el truco en nuestro banco de pruebas: la carga ahora se está distribuyendo a través de todas las vCPU (según Windows), y en lugar de 2 hilos concurrentes, tenemos 4 hilos concurrentes. Estaremos corriendo en la plataforma grande (con suerte) hoy, así que confirmaremos entonces.
Chris J
1
Asegúrese de agregarlo a su política de grupo de servidor de Windows. Es por eso que nunca termino tocándolo manualmente nunca más.
ewwhite
Buena sugerencia - ta.
Chris J
4

No importaría Si desea ahorrar energía, asigne menos núcleos al invitado VM. Windows intentará administrar sus núcleos "virtuales", pero no tiene control sobre el hipervisor, por lo que no afectaría las CPU físicas reales en el sistema.

Nathan C
fuente
Para mí, este no es un problema de ahorro de energía, ya que el host está virtualizado, por lo que es ESXi lo que tengo que mirar. Es más importante si influye / interfiere con el planificador del hipervisor en sí, ya que en última instancia el tiempo físico de la CPU se asigna por eso, y no por el planificador de Windows. Mi propio presentimiento es que el estacionamiento probablemente debería estar deshabilitado, por lo que el programador de Windows no tiene que "estacionar" una CPU que realmente no existe, y esto podría hacer un mejor uso de las CPU físicas subyacentes al permitir que ESX asigne tiempo en consecuencia. Me preguntaba si mi instinto es correcto :-)
Chris J
No influirá en el planificador. En condiciones restringidas, ESXi podría "robar" el tiempo de CPU no utilizado de sus invitados, pero de lo contrario el núcleo permanecerá inactivo a menos que otro invitado también lo esté usando.
Nathan C
@ChrisJ No hay necesidad de deshabilitar. No intentes burlar a VMware :)
ewwhite
No estoy tratando de burlar a VMWare, estoy tratando de adivinar Windows (ya que no parece estar programando una aplicación en todas las vCPU) :-) No pensé que necesitáramos hacerlo, principalmente debido a la falta de información al respecto en línea (lo que implica que la mayoría / todos lo dejan como está), pero solo quería explorar este aspecto.
Chris J
@ChrisJ No creo que las personas toquen esta configuración directamente. Por lo general, es parte de la política de energía del sistema.
ewwhite