Estoy publicando esto aquí porque lo que encontré sobre el tema está desactualizado, incompleto o no es adecuado por varias razones.
Durante mucho tiempo he querido aprender a asignar vCPU específicas a una VM específica (que necesita el máximo rendimiento posible de la CPU y el menor número posible de bloqueos/cambios de contexto de CPU), mientras que en el mismo nodo hay otras VM que no pueden acceder a los núcleos anclados (solo deben ser accesibles para la VM específica) y cuya asignación de CPU la realiza el programador de forma "predeterminada".
Mi sistema actual de elección es Proxmox (solo usa KVM), generalmente la última versión en la rama pvetest y el último kernel 3.X.
Para mis necesidades específicas, en lugar de aprender a hacer esto en mi sistema actual, consideraría cambiar a otros sistemas o incluso hipervisores que permitan una gestión avanzada de la asignación de CPU a las máquinas virtuales. Mi presupuesto para soluciones pagas es casi nulo, sin excluirlas a todas desde el principio, pero deberían ser muy económicas de considerar.
Muchas gracias de antemano y espero que las (muchas) respuestas posibles sean útiles para muchas otras personas.
Esta característica podría ser útil para usuarios/administradores de hosts de virtualización (por cualquier motivo, en mi caso porque uso diferentes sistemas operativos) donde la mayoría de las máquinas virtuales necesitan poco tiempo de CPU, pero hay una (o algunas) que necesitan un tiempo de CPU alto garantizado.
Respuesta1
Parece que proxmox ya tiene algunas opciones similares.
https://forum.proxmox.com/threads/numa-config-option.21313/
Sí, hará uso de la fijación de CPU (afinidad). Tengo entendido que habilitar NUMA cambiará el algoritmo de programación de modo que ahora tenga en cuenta los nodos NUMA en la CPU física subyacente. Por lo tanto, intentaremos mantener la programación de vCPU dentro del mismo nodo NUMA siempre que sea posible.