Defina o ionice para um aplicativo multi-threaded

1

Eu tenho um programa que gera vários threads, todos os quais fazem IO bastante intensivo, sendo executados em segundo plano. Eu quero definir a classe de agendamento para idle para que não entupam o sistema; no entanto, ionice -c3 -p <PID> , onde <PID> é o ID do processo, não tem o efeito desejado. Embora a classe de agendamento para o processo <PID> seja alterada, quando lancei iotop , todos os segmentos gerados ainda tinham a prioridade padrão (melhor nível de esforço 4).

Como eu mudo a prioridade de IO de um programa e todos os segmentos ou processos gerados no Linux?

    
por jaymmer 01.04.2015 / 08:13

1 resposta

0

ionice pode ter um ID de grupo de processos como um argumento ( -P switch), que, obviamente, afeta todos os processos (e encadeamentos) no grupo de processos fornecido. Uma vez pode encontrar o ID do grupo de processos observando o quinto campo de /proc/<PID>/stat (ou usando ps ). Essa configuração é um pouco mais grosseira do que eu realmente queria, mas funciona bem o suficiente.

    
por 02.04.2015 / 14:26