Применение асинхронной буферизированной записи на базе 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 со знаком вопроса.



Источник: opennet.ru

Добавить комментарий