Zastosowanie asynchronicznego buforowanego zapisu opartego na io_uring zmniejszyło opóźnienia w XFS nawet 80-krotnie

Opublikowano serię poprawek do włączenia do jądra Linuksa 5.20, dodających obsługę asynchronicznych buforowanych zapisów w systemie plików XFS przy użyciu mechanizmu io_uring. Wstępne testy wydajności przeprowadzone przy użyciu zestawu narzędzi fio (1 wątek, rozmiar bloku 4kB, 600 sekund, zapisy sekwencyjne) wykazują wzrost liczby operacji wejścia/wyjścia na sekundę (IOPS) z 77 tys. do 209 tys., szybkości przesyłania danych z 314 MB/s do 854 MB/s si spadek opóźnienia z 9600 ns do 120 ns (80 razy). zapisuje sekwencyjnie: bez łatki z łatką libaio psync iops: 77 tys. 209 tys. 195 tys. 233 tys. bw: 314 MB/s 854 MB/s 790 MB/s 953 MB/s clat: 9600 ns 120 ns 540 ns 3000 ns

Dla zainteresowanych stanem io_uring na połowę 2022 roku zaleca się zapoznanie ze slajdami i nagraniem wideo raportu z Kernel Recipes 2022. Krótko wspomniano o zmianach już zawartych w jądrze oraz tych planowanych, m.in. na przykład możesz zauważyć obsługę:

  • akceptacja wielu strzałów().
  • multiple (multi-shot) recv() - według testów wzrost o 6-8% - z 1150000 1200000 XNUMX do XNUMX XNUMX XNUMX RPS.
  • aktualizacja i poprawki w bibliotece liburing, dodawanie dokumentacji i testów.

W kontekście przenośności io_uring slajdy wspominają o znacznych podobieństwach z „I/O Rings” zastosowanymi w podsystemie Direct Storage w Windows 11, a także o możliwości pracy międzyplatformowej, ale z pozostałych platform na slajdu autora, jedynie FreeBSD jest wspomniane ze znakiem zapytania.



Źródło: opennet.ru

Dodaj komentarz