Como o ionice funciona com várias unidades?

7

Entendo como ionice pode ajudar quando você tem vários processos solicitando acesso aos mesmos recursos de disco, mas como funciona quando você tem vários discos?

Por exemplo, você tem uma operação de rsync movendo dados da Unidade A - > Unidade B e outros rsync movendo dados da Unidade C - > Drive D .

Em teoria, uma vez que eles não estão competindo por recursos, ionice 'um desses processos rsync não deve alterar sua taxa de transferência. É assim que funciona, ou ainda afetará o desempenho?

Além disso, existe algum "limite superior" no total de E / S que pode ocorrer em um sistema linux que é independente da velocidade da unidade? Como se você conectasse 100 drives SSD , em algum momento o OS teria um gargalo além da velocidade da unidade?

    
por user159726 21.07.2016 / 06:41

1 resposta

2

No Linux, as unidades são agendadas independentemente umas das outras. Você pode até mesmo definir o algoritmo de programação IO deve ser diferente para unidades diferentes no mesmo sistema, gravando em /sys/block/<device>/queue/iosched .

A largura de banda entre a memória e os discos pode se tornar um gargalo. É por isso que o hardware RAID faz sentido: os dados são enviados para o controlador RAID uma vez, ao contrário de cada disco separadamente. Você também pode aumentar essa largura de banda conectando esses 100 SSDs a mais de um computador, distribuindo a carga entre eles.

Não tenho certeza de como o escalonador de E / S leva isso em consideração, mas não acho que isso aconteça.

    
por 01.01.2017 / 02:48