¿Cómo puedo limitar la cantidad de núcleos de CPU que un usuario puede usar en cualquier momento en Linux?

¿Cómo puedo limitar la cantidad de núcleos de CPU que un usuario puede usar en cualquier momento en Linux?

Me gustaría limitar la cantidad de núcleos de CPU que un usuario específico puede usar en un momento dado. ¿Cómo haría esto en Linux?

Respuesta1

Por lo que sé, no puedes hacer eso más que usar Docker como entorno virtual y limitar el contenedor completo a núcleos seleccionados. Ejemplo:

docker run --cpuset-cpus="0"

Durante la mayor parte del tiempo, no debería verse obligado a utilizar dicha solución. Si uno de los usuarios causa problemas, utilice /etc/security/limits.confagregar entrada:

username    -       priority        19

Eso debería hacer que todos los procesos del usuario se ejecuten con prioridad 19 (la más baja) e incluso cuando consuma gran parte de la CPU no debería interferir con otros programas en la máquina.

Además, si se trata de un proceso único (no de un usuario), entonces puede usar niceo cpulimit/cgroups

información relacionada