
Gostaria de limitar o número de núcleos de CPU que um usuário específico pode usar a qualquer momento. Como eu faria isso no Linux?
Responder1
Pelo que sei, você não pode fazer isso além de usar o docker como ambiente virtual e limitar o contêiner inteiro aos núcleos selecionados. Exemplo:
docker run --cpuset-cpus="0"
Na maior parte do tempo você não deve ser forçado a usar essa solução. Se um dos usuários causar problemas, /etc/security/limits.conf
adicione a entrada:
username - priority 19
Isso deve fazer com que todos os processos do usuário sejam executados com prioridade 19 (mais baixa) e mesmo consumindo muito da CPU não deve interferir em outros programas da máquina.
Além disso, se for uma questão de processo único (não de usuário), você pode usar nice
ou cpulimit
/cgroups