Limitar usuário a N núcleos de CPU

2

Eu quero limitar um usuário no meu sistema para poder usar apenas um núcleo do meu sistema.

Depois de pesquisar, encontrei este , mas não consigo descobrir como usá-lo.

Eu também gostaria de limitar o uso desse núcleo a uma porcentagem específica para evitar abusos.

    
por Jacob Pedersen 09.06.2014 / 17:05

1 resposta

4

A abordagem de limitar uso de núcleos / cpu provavelmente não é o que você deseja. É que você tem um usuário que gosta de executar tarefas multicore / intensivas, e isso acaba atrasando todo o servidor? A solução é "legal" esse usuário automaticamente.

Em seu /etc/security/limits.conf , você desejaria adicionar uma entrada para seu usuário abusivo (de 19 a 19 anos, com 19 sendo a prioridade mais baixa):

username    -       priority        19

Basicamente, isso significa definir esse usuário para ser executado com uma prioridade mais baixa. Se ninguém mais estiver executando processos, esse usuário poderá consumir a CPU extra disponível (a CPU ociosa é uma CPU desperdiçada). Mas se alguma coisa está sendo executada, os processos desse usuário renderão CPU. Ouvi dizer que os servidores são projetados para funcionar de maneira ideal em 100% da CPU e que você não pode depositar ciclos de CPU não usados para usar posteriormente.

Histórico: Eu tenho um servidor Linux que funciona com 100% de CPU 24x7 em todos os núcleos. Ele executa simultaneamente software de análise financeira com uso intensivo de computação, um banco de dados MySQL, uma instância do Tomcat e o Apache / PHP. O software financeiro vai comer o máximo de CPU e núcleos que conseguir, então eu os tenho na prioridade 19. Eu quero que meus servidores Tomcat e Apache / PHP sejam responsivos, então eu os configurei em -2 ou -3. As páginas da Web aparecem com a mesma rapidez, com ou sem o software financeiro em execução, graças ao gerenciamento adequado das prioridades.

    
por 09.06.2014 / 18:32