iotop e ionice -p mostram uma classe / prioridade diferente para o mesmo processo

1

Depois de executar ionice -c2 -n7 <PID> em um processo intensivo de E / S (VM do VirtualBox) e verificar o resultado com ionice -p <PID> , ele mostrará best-effort: prio 7 , o que é esperado.

Mas, ao monitorar a E / S total do disco de todos os processos via iotop , ele mostra na coluna PRIO um valor de be/4 para esse processo, que eu suponho significa b est- e ffort e level (priority) 4, que é prioridade média e não é esperado.

Alguém pode comentar por que há uma diferença entre o que ionice e o que iotop exibe? E existe outra maneira de verificar a verdadeira prioridade de E / S de um determinado processo, com ionice -p ?

Pelo que entendi, há /proc/<pid>/io , mas exibe somente bytes / caracteres lidos e escritos, mas não a prioridade, cf. Saiba qual processo faz a E / S sem o iotop
Também Como visualizo a prioridade de IO de um processo? lista apenas ionice -p

Para fins de integralidade, isso está no RHEL 6.7 com o iotop 0.3.2 e o planejador é o CFQ padrão.

    
por doktor5000 25.10.2015 / 01:03

1 resposta

1

Parece que já encontrei parte da resposta. Por padrão, iotop mostra todos os processos e encadeamentos, e normalmente eu o executo via iotop -o , que mostra apenas encadeamentos e processos fazendo E / S. O processo do VirtualBox mostrado como be/4 é, na verdade, um encadeamento, e quando executo iotop -p <pid> no PID que alterei via ionice , ele exibe corretamente be/7 , o que é esperado.

Ainda seria interessante saber por que um thread desse processo tem uma classe / prioridade de E / S diferente, mas meu ionice não possui a opção -P para alterar a classe / prioridade de E / S de um grupo de processos. Seria bom se alguém soubesse uma solução / solução para isso.

    
por 25.10.2015 / 01:09