Às vezes, uma única operação pesada de E / S pode afetar o desempenho do kernel em relação a todas as tarefas de E / S, incluindo aquelas que não operam diretamente no dispositivo do primeiro.
-
A primeira e indireta maneira de controlar prioridades no agendamento de I / O é o ajuste do nível de processo que você já mencionou. Nos Linuxes modernos, um processo com um bom valor de 19 (ou seja, o máximo) é por padrão na classe de melhor esforço com prioridade igual a (19 + 20) / 5 = 7, que é o prioridade mais baixa disponível dentro da classe. Mais geralmente, varia em [0,7] de acordo com essa função de mapeamento.
-
Uma segunda maneira direta e mais poderosa de controlar o planejamento de E / S é intervir manualmente na classe de programação de E / S atribuída aos processos. Isso nos permite colocar um processo também em duas classes adicionais: classe em tempo real , com maior prioridade do que o melhor nível de esforço 0, e classe ociosa , com menor prioridade que o melhor nível de esforço 7. Esta última garantia, teoricamente, que nenhuma outra operação de E / S poderia esperar por uma operação de processo agendada inativa. Da mesma forma que o comando
nice
, oionice
permite gerar um processo com uma determinada prioridade ou alterar as prioridades de um processo existente. Mais informações sobre essa ferramenta e agendamento de I / O nos kernels Linux em geral podem ser encontradas na página de manual do ionice .
Dito isso, você tentou iniciar seu processo com ionice -c 3 x265 ...
?
P.S. Desculpe, notei a tag 'FreeBSD' na questão depois de postar minha resposta, que talvez entra em colapso no seguinte.
I don't think FreeBSD has any I/O scheduler. You may consider perform your work on a Linux box, which has it and it is quite is easy to play with it.