Tornando o kernel ciente da colocação de dispositivos

7

Eu tenho um servidor com uma grande matriz RAID6 de hardware que foi configurada com dois volumes, apresentados pelo Linux como sda e sdb (sim, eu sei, mas é uma cor alugada que vem configurada dessa maneira, e infelizmente Eu tenho que viver com isso).

Eu tenho um processo intensivo de E / S que usa sdb . Eu corri com ionice -c3 , como eu quero ter prioridade mais baixa do que qualquer outra coisa. Infelizmente, ionice não sabe que os dois dispositivos estão realmente compartilhando a mesma largura de banda da matriz. Quando esse processo está ocupado, o kernel vê que sdb está silencioso e fornece toda a largura de banda necessária. No entanto, isso pode tornar sda muito lento, porque (pelo que entendi) ionice funciona em uma base por dispositivo.

Existe alguma forma de fazer com que o kernel equilibre o disco de E / S em todos os dispositivos?

    
por Flup 17.05.2013 / 09:47

1 resposta

2

Qual programador IO você está usando?

cat /sys/block/<disk>/queue/scheduler

Ele mostrará qual você está usando. Eu tentaria noop (que é praticamente primeiro, primeiro servir), prazo e CFQ e ver o que é apropriado para você.

CFQ é o padrão para RHEL / SUSE, prazo para o Ubuntu e noop para ninguém (mas deve deixar o dispositivo backend lidar com o seu agendamento em vez de Linux tentando equilibrá-lo.

    
por 14.08.2013 / 22:27

Tags