Defina um valor legal padrão para um determinado usuário (limits.conf)

11

Alguém poderia me dizer como definir o valor padrão de nice (conforme exibido por top ) de um usuário? Eu descobri que /etc/security/limits.conf é o lugar, mas se eu coloco:

username_of_a_guy  -  nice  19
username_of_a_guy  soft  nice  19
username_of_a_guy  hard  nice  19

Não funciona (enquanto deveria, certo?).

Note que eu reiniciei desde então.

Obrigado muito antecipadamente por qualquer ajuda. Estou usando o debian unstable (uptodate).

Contexto:

No meu trabalho, temos uma rede local: todo mundo tem seu próprio computador e todos podem criar uma conta na máquina de outra pessoa, se quiser. A regra básica é simplesmente que se você trabalha em outro computador, por favor, seus processos são bons ( nice 19 ).

Eu gostaria de definir o valor padrão para um determinado usuário como 19 de uma vez por todas.

    
por Alex 10.03.2011 / 13:02

2 respostas

12

Eu acredito que o formato correto é:

@users      -       priority        10
username    -       priority        19

Este é um exemplo das configurações que estou usando na produção (obviamente com usuários reais / grupos).

A configuração nice é para determinar o valor mínimo aceitável (ou seja, prioridade máxima) para o qual alguém pode definir o processo, e não a prioridade padrão.

    
por 10.03.2011 / 14:32
3

Posso confirmar que isso também não funciona no meu sistema. Os documentos dizem "kernel 2.6.11 and up", e eu estou no Fedora rawhide com o kernel 2.6.38-rc6. Gostaria de saber se é dependente do agendador e não funciona com o CFQ introduzido no 2.6.23 ("Completely Fair Scheduler").

Algo que funcionará, no entanto, é o impossível-para-procurar-por-porque-de-seu-nome-horrível and - o daemon auto-nice. Vejo link . Isso está disponível no Fedora com yum install and , mas infelizmente não parece estar no EPEL. E também no Debian: apt-get install and .

Se você está usando uma distribuição moderna, existe uma maneira ainda melhor. Você pode usar as ferramentas de libcgroup para configurar um nível de kernel cgroup limitando compartilhamentos de CPU, e automaticamente" classifica "os processos desse usuário neste cgroup. Com isso, você também pode priorizar E / S e limitar o uso de memória (incluindo o compartilhamento do cache de disco).

    
por 10.03.2011 / 14:04