Otimizações foram preparadas para o kernel Linux para melhorar o desempenho dos agendadores de E/S

Jens Axboe, criador do io_uring e dos agendadores de E/S CFQ, Deadline e Noop, continuou seus experimentos com otimização de E/S no kernel Linux. Desta vez, sua atenção se voltou para os agendadores de E/S BFQ e mq-deadline, que se revelaram um gargalo, pelo menos no caso de drives NVMe de alta velocidade.

Como o estudo da situação mostrou, uma das principais razões para o desempenho abaixo do ideal dos subsistemas do escalonador de E/S foram problemas com bloqueios concorrentes (“contenção de bloqueio”, uma tentativa de obter um bloqueio mantido por outro thread). Graças a medidas destinadas a reduzir a contenção de bloqueios, como a serialização do despacho e a inserção de consultas, a velocidade dos escalonadores aumentou significativamente em diversas situações (em IOPS).

Ao testar o agendador BFQ com o utilitário fio, o desempenho aumentou de 567K para 1551K IOPS e a contenção de bloqueio diminuiu de 96% para 30%. No caso do mq-deadline, o desempenho após a aplicação dos patches propostos ao usar um drive NVMe aumentou de 1070 K para 2560 K operações de entrada/saída por segundo (IOPS), e a contenção de bloqueio diminuiu de 94% para 23%.

Fonte: opennet.ru

Adicionar um comentário