Você provavelmente estaria melhor com legal como a forma cpulimit
é um pouco invasiva e pode jogar mal com o controle do trabalho de shell e outros mecanismos.
Como nice
é um recurso do sistema operacional que altera as prioridades de agendamento, isso é muito mais fácil do que o cpulimit
, que permite que um processo seja executado com a rapidez que deseja até ter excedido um percentual após o qual obtém um SIGSTOP, seguido por um sono e um SIGCONT.
Como um exemplo simples, considere este script de shell "copiar um monte de zeros para lugar nenhum":
$ cat waster
#!/bin/sh
dd if=/dev/zero of=/dev/null count=${1}000000
$ time ./waster 5 # takes about 3.7 seconds on my machine
$ time ./waster 10 # takes about 7.4 seconds, no surprise
agora execute-os ao mesmo tempo:
$ time ./waster 5 & time ./waster 10 &
estes levam 7,1 segundos e 11,1 segundos porque estão lutando pela CPU. Mas se eu adicionar nice
$ time ./waster 5 & time nice -n 19 ./waster 10 &
então o primeiro leva cerca de 4,0 segundos e o bom leva 12,9 segundos porque o bom toma a prioridade mais baixa possível, permitindo que o primeiro pegue a maior parte do processador possível. E nenhum processo é interrompido a qualquer momento.