nice e ionice: qual deve vir primeiro?

5

Eu preciso executar alguns comandos longos e pesados, mas ao mesmo tempo eu gostaria de manter meu sistema de desktop responsivo. Exemplos: desduplicação do btrfs, equilíbrio do btrfs, etc. Não me importo se esses comandos demorarem mais tempo a terminar se eu lhes der uma prioridade mais baixa, mas o meu sistema deve ser sempre responsivo. Usar nice -n 19 e ionice -c 3 deve resolver meu problema, mas não sei qual comando deve vir primeiro para o benefício máximo.

Opção A:

# nice -n 19 ionice -c 3 btrfs balance start --full-balance /

Opção B:

# ionice -c 3 nice -n 19 btrfs balance start --full-balance /

Existe alguma diferença sutil entre as opções A e B? Eles são equivalentes, talvez?

    
por Francesco Turco 05.09.2017 / 15:06

2 respostas

7

Se nice causasse muita E / S, você gostaria de fazer:

ionice -c 3 nice ...

para que o impacto da E / S seja minimizado.

Por outro lado, se ionice realizou muitos cálculos, você gostaria de fazer

nice -n 19 ionice ...

para minimizar o impacto da CPU.

Mas nenhum destes é verdade, ambos são comandos muito simples (eles apenas fazem uma chamada de sistema para alterar um parâmetro de processo, então executam o comando). Então a diferença deve ser insignificante.

E só para estar completo, se ambos forem verdadeiros, você não pode realmente ganhar - o impacto de um deles não pode ser reduzido.

    
por 06.09.2017 / 19:44
2

Não há diferença prática entre os dois.

    
por 05.09.2017 / 18:06