Применение асинхронной буферизированной записи на базе io_uring до 80 раз снизило задержки в XFS

Опубликована серия патчей для включения в ядро Linux 5.20, добавляющая поддержку асинхронной буферизированной записи в файловую систему XFS при помощи механизма io_uring. Предварительные тесты производительности, проведённые при помощи инструментария fio (1 поток, размер блока 4 кб, 600 секунд, последовательная запись), показывают увеличение числа операция ввода/вывода в секунду (IOPS) от 77k до 209k, скорости передачи данных от 314MB/s до 854MB/s и падения задержек от 9600ns до 120ns (80 раз).

                 sequential writes:
                 without patch           with patch      libaio     psync
  iops:              77k                    209k          195K       233K
  bw:               314MB/s                 854MB/s       790MB/s    953MB/s
  clat:            9600ns                   120ns         540ns     3000ns

Для интересующихся состоянием io_uring на середину 2022 года, рекомендуется ознакомиться со слайдами и видеозаписью доклада с Kernel Recipes 2022. Обзорно упоминаются изменения уже вошедшие в ядро и планируемые, например можно отметить поддержку:

  • множественного (multi-shot) accept ().
  • множественного (multi-shot) recv () — по тестам прирост 6–8% — от 1150000 до 1200000 RPS.
  • обновление и исправления в библиотеке liburing, добавление документации и тестов.

В контексте переносимости io_uring на слайдах упоминается значительная схожесть с «I/O Rings», используемой в подсистеме Direct Storage в Windows 11, а также возможность реализации кроссплатформенной работы, но из других платформ на слайде автора упомянута только FreeBSD со знаком вопроса.



Источник: http://www.opennet.ru/opennews/art.shtml? num=57412

©  OpenNet