Como os IOs são acelerados do IO Scheduler para os drivers de baixo nível do scsi

0
O

planejador IO tem uma profundidade de fila de 128 por padrão. E o dispositivo de bloco tem uma profundidade de fila de 32 por padrão. Onde os IOs são armazenados em buffer? O planejador IO envia todos os IOs para os drivers de baixo nível scsi e o buffer do driver para os IOs. Ou há estrangulamento em outro lugar.

    
por rishabh mittal 01.09.2018 / 01:23

1 resposta

0

Os programadores IO podem ser "não conservadores do trabalho". Ou seja, eles podem optar por não enviar IOs imediatamente. Existe uma técnica de agendamento de IO conhecida como "inativa". É particularmente útil para discos giratórios (ou seja, não SSDs). Os escalonadores CFQ e BFQ usam o modo inativo.

Lembre-se também de que as chamadas write () podem ser armazenadas em buffer no cache de páginas, antes de serem gravadas como uma solicitação de E / S. E abaixo da fila de dispositivos de bloco, pode haver um cache de gravação do dispositivo. É tudo muito complexo e leva a vários comportamentos estranhos: -).

Observe que nem todos os dispositivos de bloco têm uma profundidade de fila padrão de 32, que é apenas a profundidade da fila comum para o SATA NCQ. Os dispositivos SCSI TCQ podem permitir mais, pelo menos, o padrão. (E os dispositivos NVMe podem definitivamente permitir mais e também podem ter várias filas paralelas).

    
por 27.11.2018 / 18:00