Uma série de patches foi publicada para inclusão no kernel Linux 5.20, adicionando suporte para gravações assíncronas em buffer no sistema de arquivos XFS usando o mecanismo io_uring. Testes preliminares de desempenho realizados usando o kit de ferramentas fio (1 thread, tamanho de bloco de 4kB, 600 segundos, gravações sequenciais) mostram um aumento nas operações de entrada/saída por segundo (IOPS) de 77k para 209k, taxas de transferência de dados de 314MB/s para 854MB/ se uma queda na latência de 9600ns para 120ns (80 vezes). gravações sequenciais: sem patch com patch libaio psync iops: 77k 209k 195K 233K bw: 314MB/s 854MB/s 790MB/s 953MB/s clat: 9600ns 120ns 540ns 3000ns
Para os interessados no estado do io_uring em meados de 2022, é recomendável que você se familiarize com os slides e a gravação de vídeo do relatório do Kernel Recipes 2022. As alterações já incluídas no kernel e as planejadas são brevemente mencionadas, por por exemplo, você pode observar o suporte para:
- aceitação multi-shot().
- recv múltiplo (multi-shot) () - de acordo com os testes, um aumento de 6-8% - de 1150000 para 1200000 RPS.
- atualização e correções na biblioteca liburing, adicionando documentação e testes.
No contexto da portabilidade do io_uring, os slides mencionam semelhanças significativas com os “I/O Rings” utilizados no subsistema Direct Storage do Windows 11, bem como a possibilidade de operação multiplataforma, mas das demais plataformas do slide do autor, apenas o FreeBSD é mencionado com um ponto de interrogação.
Fonte: opennet.ru