Quando você executar o comando find
como você postou, ele fará um rm
para cada arquivo que encontrar. Esta não é uma boa maneira de fazer isso, em termos de desempenho.
Para melhorar essa tarefa, você pode usar a opção -exec
em find para processar a saída para um comando rm
:
find -mtime +100 -exec rm {} +
É muito importante o uso da terminação +
em vez do \;
alternativo. Com +
, o find só fará um comando rm
para o número máximo de arquivos que ele pode processar em uma execução simples. Com a terminação \;
, find
fará um comando rm
para cada arquivo, assim você terá o mesmo problema.
Para um melhor desempenho, você pode associá-lo ao comando ionice
, como você mencionou. Se você não perceber que isso melhora o desempenho do sistema, o mais possível é que ele consome outros recursos além da E / S, como a CPU. Para isso, você pode usar o comando renice
para diminuir a prioridade no uso da CPU do processo.
Eu usaria o seguinte:
ionice -c 3 find -mtime +100 -exec rm {} +
Agora, em outro shell, você precisa encontrar o PID do comando find: ps -ef | grep find
E finalmente execute o comando renice: renice +19 -p <PID_find_command>
Espero que ajude.