Algumas informações que podem ser úteis para sua escolha
Sou um dos autores do BFQ, então sou uma festa desinteressada :)
Mas vou relatar apenas números obtidos com testes repetitivos.
Testamos o BFQ em cartões SD, eMMC, HDDs, SSDs SATA,
e NVMe SSDs. Quanto aos HDDs e SSDs, executamos testes com ambos
configurações de disco único e RAID.
Em termos de taxa de transferência, os resultados podem ser resumidos da seguinte forma. Com SD
Cards, eMMC e HDDs (single e RAID), não há regressão em
termos de rendimento. Em contraste, com os HDDs, há um ganho em torno
20-30% com alguma carga de trabalho.
Em SSDs, há uma perda de throughput somente
- com E / S de sincronização aleatória: cerca de 2-3% em SSDs médios, até 10-15% em
SSDs NVMe muito rápidos. Com uma carga de trabalho destinada a colocar o BFQ
condição difícil, chegamos a uma perda de 18% [1], mas em qualquer outra
teste de terceiros a perda é de cerca de 10% no pior dos casos. Esta perda
é principalmente devido ao fato de que o BFQ não é um planejador de I / O mínimo. Nós
estão trabalhando nisso. Não é fácil; vamos precisar de tempo para preencher este
lacuna.
- com E / S de gravação única em SSDs muito rápidos: cerca de 5 a 10%. Isto é devido a um
problema com tags de solicitação de E / S. Nós já encontramos uma solução.
Como não consideramos esse problema crítico, estamos dando mais
prioridade para outros itens em nossa lista TODO. Se você pensa o contrário, nós
estão dispostos a mudar nossas prioridades.
Devido à sobrecarga acima, o BFQ não pode processar mais de 400 a 500
KIOPS em uma CPU de commodity.
Em termos de capacidade de resposta e latência para aplicativos sensíveis ao tempo
(como players de áudio / vídeo), os resultados são simplesmente incomparáveis. Para
exemplo, independentemente da carga de trabalho de E / S em segundo plano, com BFQ
os aplicativos são iniciados tão rapidamente quanto se a unidade estivesse inativa. Com qualquer um dos
outros agendadores, os pedidos podem levar dez vezes mais tempo, ou mesmo não
começar de todo (até a carga de trabalho de fundo terminar) [1].
Além disso, quanto às cargas de trabalho semelhantes a servidor, o BFQ permite, por exemplo, que a fração desejada da largura de banda de E / S seja garantida a cada cliente (ou contêiner, VM ou qualquer
outro tipo de armazenamento de compartilhamento de entidade), atingindo um throughput total não
comparável ao alcançado por qualquer outra solução para o controle de E / S [2].
Finalmente, se você estiver em dúvida sobre alguma carga de trabalho específica, nós
fique feliz em testá-lo.
[1] link
[2] link