FERRAMENTAS LINUX: O Kernel Linux está obtendo o io_uring para fornecer E / S rápida e eficiente

quinta-feira, 14 de fevereiro de 2019

O Kernel Linux está obtendo o io_uring para fornecer E / S rápida e eficiente




Confira !!



O kernel do Linux está recebendo um novo anel para o Dia dos Namorados ... io_uring. O propósito do io_uring é entregar operações de E / S mais rápidas e mais eficientes no Linux e deve vir com o próximo ciclo do kernel.

O mantenedor do bloco Linux e desenvolvedor por trás do io_uring, Jens Axboe do Facebook, enfileirou a nova interface durante a noite no linux-block / for-next no Git. A interface io_uring fornece anéis de fila de envio e conclusão que são compartilhados entre o aplicativo e o kernel para evitar excesso de cópias. A nova interface tem apenas duas novas chamadas de sistema (io_uring_setup e io_uring_enter) para lidar com E / S. Axboe trabalhou anteriormente neste código sob o nome "aioring".

Io_uring é muito mais eficiente do que o código de E / S assíncrono AIO do Linux, há um eficiente suporte de E / S assíncrona em buffer, a capacidade de fazer E / S sem executar uma chamada do sistema via E / S polled e outros aprimoramentos de eficiência. O patch de interface continua a explicar:
Com essa configuração, é possível fazer IO assíncrono com uma única chamada de sistema. Desenvolvimentos futuros permitirão IO com polling com essa interface e também a submissão sondada. O último permitirá que um aplicativo faça IO sem fazer nenhuma chamada de sistema.

Para o IO orientado por IRQ, um aplicativo só precisa entrar no kernel para concluir se quiser esperar que eles ocorram.

Cada io_uring é suportado por uma fila de trabalho, para suportar o IOs async também. Nós só vamos puntar a um contexto assíncrono se o comando precisar esperar por IO no lado do dispositivo. Todos os dados que podem ser acessados ​​diretamente no cache da página são feitos em linha. Isso evita o problema de lentidão dos encadeamentos comuns, já que os dados em cache são acessados ​​tão rapidamente quanto uma interface de sincronização.
A filosofia de design com o io_uring parece estar no fornecimento de E / S rápida e eficiente para o Linux.

Há o liburing como a biblioteca de espaço do usuário construída em torno das novas interfaces. O benchmark FIO da Axboe também já foi adaptado para suportar o io_uring. Este deve ser outro recurso que vale a pena ficar entusiasmado com o kernel Linux 5.1.



Até a próxima !!

Nenhum comentário:

Postar um comentário