ionice idle é ignorado [duplicado]

5

Eu tenho testado o comando ionice por um tempo e o modo idle (3) parece ser ignorado na maioria dos casos.

Meu teste é executar os dois comandos ao mesmo tempo:

  • du <big folder>
  • ionice -c 3 du <another big folder>

Se eu verificar o processo em iotop , não vejo diferença na porcentagem de utilização de io para cada processo.

Para fornecer mais informações sobre o planejador CFQ, estou usando um kernel do Linux 3.5.0.

Eu comecei a fazer este teste porque estou experimentando um atraso no sistema cada vez que uma tarefa cron diária updatedb.mlocate é executada na minha máquina Ubuntu 12.10.

Se você verificar o arquivo /etc/cron.daily/mlocate , perceberá que o comando é executado como:

/usr/bin/ionice -c3 /usr/bin/updatedb.mlocate

Além disso, o mais engraçado é que sempre que meu sistema, por algum motivo, começa a usar memória swap, o processo updatedb.mlocate io é agendado mais rápido do que kswapd0 process e meu sistema fica preso.

Alguma sugestão?

Referências:

por Ferran Basora 07.03.2013 / 11:27

2 respostas

4

ionice só funciona se você estiver usando o agendador do kernel do CFQ. Distribuições parecem padrão para deadline scheduler.

Veja /sys/block/xvdh/queue/scheduler para ver qual você ativou. É aquele entre colchetes.

    
por 06.06.2014 / 17:13
0

Acho que esse é o comportamento esperado - pelo menos, se ambos os processos tiverem um compartilhamento de E / S próximo a 100%. Deve haver uma pequena diferença, mas 100% é o limite e, se você já estiver em 96%, obter apenas metade dos resultados de E / S em 98%. Não é grande coisa.

Uma diferença séria deve ser discernível nos valores absolutos de transferência. Essa diferença pode depender da prioridade da CPU também.

O ingresso de I / O não significa que o sistema não é afetado. Se processos não ociosos não consumirem toda a E / S disponível, o processo prioritário também receberá largura de banda de E / S. Assim, pode acontecer com muita frequência que um aplicativo de prio não ocioso exija E / S e obtenha o próximo slot, mas como há um IOP sendo executado para o processo de inatividade ocioso, a latência aumenta. Quanto menos E / S um processo faz, maior deve ser o impacto do processo de prioridade ocioso sobre ele. Assim, pode ajudar a reduzir a prioridade da CPU do processo cron (talvez até mesmo tornando-a SCHED_IDLE).

Eu não tenho ideia sobre o problema de troca.

    
por 08.03.2013 / 18:49

Tags