Como mencionado, nice
controla apenas o agendamento de CPU. Você mesmo observou que o uso da CPU era de apenas 5% no momento. Isso significa que o sistema estava strongmente ligado a E / S, ou seja, ler / gravar os discos era o gargalo.
Você pode controlar a prioridade de IO dada a um processo por meio do comando ionice
. Você pode colocar um processo em uma das três classes de agendamento:
- ocioso - só terá tempo de disco quando nenhum outro programa precisar do disco
- best-effort - basicamente o padrão
- em tempo real - essa classe obtém o primeiro acesso ao disco, não importando o que esteja acontecendo
Você pode especificar a classe com a opção -c
, 1 = tempo real, 2 = melhor esforço, 3 = ocioso.
Com o melhor esforço e em tempo real, há também oito níveis de prioridade diferentes para afinar os processos da mesma classe.
Geralmente, executo comandos como tar
ou rsync
com ionice -c3
, ou seja, a classe mais baixa "inativa". Dessa forma, outros processos não precisam de acesso ao disco.
Observe que IMHO ionice
funciona melhor com o planejador de E / S CFQ (um parâmetro do kernel).