Como posso fazer todos os meus processos começarem com niceness 5

8

Eu sei que valores de niceness são herdados do valor niceness do processo pai, mas eu posso alterar globalmente o valor de niceness padrão para um usuário em particular (eu mesmo).

Neste caso, tenho um pequeno servidor de conveniência em mente, que é acessado exclusivamente via ssh . Então, eu acho que eu poderia mudar meu shell padrão de /bin/bash para /etc/bash5 enquanto /etc/bash5 é esse script:

#!/bin/sh
nice -n 5 /bin/bash

#file privileges: root:root 755

Isso me parece terrível e passível de erros. Deve haver uma maneira melhor.

Estou mais interessado em soluções gerais, que também se aplicam a um sistema de desktop / laptop.

Editar: tentei a alteração limits.conf sugerida, mas ela não funciona como esperado:

root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf

Então, na minha máquina cliente, eu digo

myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop

Agora, o processo sleep tem um valor de niceness inicial de 0 , mas se eu alterar o valor com F8 para 19 e tentar reduzi-lo novamente com F7 para em 5 .

Edit2: solução

Em vez de usar o item nice em limits.conf , você realmente precisa usar priority , embora seja contra-intuitivo.

@nice soft priority 5
    
por bitmask 01.08.2012 / 19:48

2 respostas

7

Você pode definir a prioridade para um usuário em particular no arquivo /etc/security/limits.conf .

root       hard/soft     priority    10

Dessa forma você pode definir limites rígidos ou flexíveis para qualquer usuário em particular. Então, todos os processos que esse usuário root iniciará terão 5 como o valor de prioridade padrão.

De acordo com a página da Wikipédia :

The exact mathematical effect of setting a particular niceness value for a process depends on the details of how the scheduler is designed on that implementation of Unix.

Aqui está o instantâneo que mostra o procedimento acima:

Esteéuminstantâneodoarquivolimits.confquemostraumalinhaqueeuadicioneifinalmentecomo

roothardpriority15

Depoisdealterarisso,inicieiumasessãosshusandoocomandosshroot@localhost

Esta captura de tela mostra as duas últimas linhas que mostram o valor dos últimos dois processos -bash e sshd: root@pts/3 como 15.

Editar

Aqui está o instantâneo que mostra que você pode aumentar e diminuir a gentileza de um processo

Editar2:

Aquiestáosnapshortquemostraqueatéousuárionormalpodealterarovalordeniceness.

    
por 01.08.2012 / 20:52
1

parece você pode definir uma prioridade padrão para um usuário em limits.conf , com uma linha como:

username    soft  priority  5

Veja man limits.conf .

    
por 01.08.2012 / 20:24