Como a prioridade do IO do disco está relacionada com a prioridade do processo?

7

Estou executando software que sobrecarrega o disco IO às vezes. Não preciso de resposta rápida desse software, preciso de resposta rápida de outros aplicativos, para poder definir uma prioridade de baixo processo para isso. Gostaria de perguntar como a prioridade do processo afeta a prioridade do IO do disco para um processo.

Eu tentei um pequeno experimento: defini prioridade baixa (no Monitor do Sistema no GNOME) para um processo e verifiquei a prioridade de IO com ionice .

Resultado:

IO priority = 0 for normal process priority   
IO priority = 4 for low process priority

Mas isso sempre funciona assim? A prioridade de E / S sempre é reduzida quando reduzo a prioridade do processo?

    
por Kamil 03.09.2014 / 12:43

1 resposta

6

No Linux, por padrão, a prioridade de IO de um processo é derivada de sua prioridade de CPU de acordo com a fórmula

io_priority = (cpu_nice + 20) / 5

A prioridade de IO varia de 0 a 7, com 0 sendo a prioridade mais alta. A conveniência do processador varia de -20 a 19, com -20 sendo a prioridade mais alta.

Você pode usar o comando ionice para alterar a prioridade de IO do processo. Se você quiser que o processo seja executado somente quando o sistema não estiver ocupado, execute-o na classe "inativa" em vez da classe padrão "melhor esforço":

ionice -c 3 -p $PID
ionice -c 3 mycommand --someoption

Mesmo com a prioridade mais baixa, um processo que consome muitos discos tende a desacelerar o sistema, se nada mais, porque polui o cache.

Veja a página ionice man para mais informações.

    
por 04.09.2014 / 00:03