Opublikowano serię poprawek do jądra Linux 5.20, które dodają obsługę asynchronicznego buforowanego zapisu w systemie plików XFS za pomocą mechanizmu io_uring. Wstępne testy wydajności, przeprowadzone przy użyciu narzędzia fio (1 wątek, rozmiar bloku 4kB, 600 sekund, zapis sekwencyjny), pokazują wzrost liczby operacji wejścia/wyjścia na sekundę (IOPS) z 77k do 209k, prędkości przesyłania danych z 314MB/s do 854MB/s oraz spadek opóźnień z 9600ns do 120ns (80 razy). zapisy sekwencyjne: bez poprawek z poprawkami libaio psync iops: 77k 209k 195K 233K bw: 314MB/s 854MB/s 790MB/s 953MB/s clat: 9600ns 120ns 540ns 3000ns
Dla zainteresowanych stanem io_uring na połowę 2022 roku, zaleca się zapoznanie się z slajdami i nagraniem wideo wykładu z Kernel Recipes 2022. Ogólnie wymienione są zmiany, które już weszły do jądra i planowane, na przykład można zauważyć obsługę:
- wielokrotnego (multi-shot) accept().
- wielokrotnego (multi-shot) recv() — w testach wzrost 6-8% — z 1150000 do 1200000 RPS.
- aktualizacje i poprawki w bibliotece liburing, dodanie dokumentacji i testów.
W kontekście przenośności io_uring na slajdach wspomniana jest znaczna podobieństwo do «I/O Rings», wykorzystywanych w subsystemie Direct Storage w Windows 11, a także możliwość realizacji pracy międzyplatformowej, lecz z innych platform na slajdzie autora wymieniona jest tylko FreeBSD z znakiem zapytania.

Źródło: opennet.ru
