Executa o processo do linux com prioridade muito baixa?

11

Eu tenho processos regulares que não são tão importantes, mas consomem muita energia da CPU, e eu tenho outro processo que é realmente importante, mas ele passa a maior parte do tempo ocioso, mas quando ele tem um trabalho ele realmente precisa de alto poder de computação

Eu tentei executar com nice -20 ./low_priority_process e nice --20 ./high_priority_process , mas a prioridade mais baixa consome uma quantidade significativa de CPU quando o processo de alta prioridade está em necessidade, como posso executar um processo que realmente cede ou até mesmo suspende automaticamente quando outro processo usando o poder da CPU

    
por uray 22.09.2014 / 21:05

3 respostas

9

Dê uma olhada nos cgroups , ele deve fornecer exatamente o que você precisa - reservas de CPU (e mais). Sugiro ler como controlar a prioridade dos aplicativos usando cgroups .

Dito isso, coloque os processos importantes, ainda que ociosos, em grupo com 95% da CPU alocada e seus outros aplicativos em outro com 5% alocados - você obterá (quase) toda a energia para seus trabalhos quando necessário, enquanto o processo constantemente faminto por energia só terá 5% no máximo nesses momentos. Quando os surtos computacionais desaparecerem, todo o desempenho da CPU será lançado nos processos restantes. Como benefício, se você criar um cgroup especial (com requisitos mínimos de desempenho) para processos como sshd , poderá efetuar login independentemente de estar tentando obter toda a CPU possível - algum tempo de CPU será reservado para sshd .

    
por 22.09.2014 / 21:33
5

Se a prioridade do processo (valor legal) for baixa, não interromperá um processo de prioridade mais alta. A razão pela qual você está vendo o processo de baixa prioridade ainda consumindo uma quantidade significativa de CPU quando o processo de prioridade mais alta está em execução é porque o processo de maior prioridade não é aquele ocupado. Provavelmente esperando por IO. Use chrt -p -i 0 $PID para executar o processo com uma prioridade ainda menor que nice 19 -p $PID (supondo que estamos falando de Linux aqui).

chrt -p -i 0 $PID coloca o processo no agendador ocioso "verdadeiro".

link

    
por 10.04.2015 / 07:26
0

Tente este exemplo para executar um processo como um processo baixo.

Se o seu trabalho é bom tar xvf asets.zip

Use

nice tar xvf assets.zip

Depois disso, edite

topo para monitorar o processo de descompactar com

ps aux | grep "tar"

Tente algo específico com cpulimit

wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip
unzip cpulimit.zip
cd cpulimit-master
make
sudo cp src/cpulimit /usr/bin

cpulimit -l 50 python 0 9999999999 > / dev / null &

    
por 22.09.2014 / 21:13