Алгоритм китайской компании ByteDance, как ожидается, будет выпущен в конце года и повысит производительность NVMe в Linux 7.3 на 14%
Репортаж от Wedoany,Инженер ByteDance Фэннань Чан (Fengnan Chang) разработал для ядра Linux алгоритм, упрощающий путь обработки прямого ввода-вывода, чтобы устранить узкое место производительности твердотельных накопителей NVMe PCIe Gen5 при случайном чтении блоков размером 4 КБ. Этот патч уже объединён в Git-репозиторий подсистемы VFS и, как ожидается, будет официально выпущен вместе с версией Linux 7.3 в конце этого года.
При выполнении случайного чтения блоков размером 4 КБ на NVMe SSD PCIe Gen5 инженеры обнаружили, что коренная причина ограничения пропускной способности кроется на уровне операционной системы. Ядро Linux потребляет слишком много ресурсов ЦП при обработке каждого небольшого запроса, причём особенно заметны накладные расходы подсистемы IOmap. IOmap отвечает за отображение логических адресов файлов на физические блоки диска при прямом вводе-выводе, однако выделение памяти для вспомогательных структур и поддержание сложного конечного автомата отнимают значительные вычислительные ресурсы, что становится основным узким местом, сдерживающим высокую пропускную способность.
Разработанный Фэннан Чаном упрощённый путь прямого ввода-вывода (simple dio path) снижает задержки за счёт удаления ресурсоёмких операций. Этот механизм требует одновременного выполнения четырёх условий: тип операции — только чтение; объём считываемых данных не превышает размер блока файловой системы (обычно 4 КБ); целевой файл не зашифрован; файловая система — EXT4 или XFS. Запросы, соответствующие этим условиям, обходят этапы конечного автомата и динамического выделения памяти подсистемы IOmap, направляясь по кратчайшему пути непосредственно на нижний уровень стека ввода-вывода ядра Linux.
Тесты в сочетании с подсистемой io_uring показали, что при случайном чтении блоков размером 4 КБ на EXT4 и XFS производительность выросла с 1,92 млн IOPS до 2,19 млн IOPS, то есть примерно на 14%. В настоящее время этот патч, получивший название «IOmap Simple DIO», прошёл проверку и объединён в ветку vfs-7.3.iomap Git-репозитория подсистемы VFS. Код будет передан в основную ветку Линуса Торвальдса (Linus Torvalds) для включения в окно слияния Linux 7.3.
Связанные продукты




Тропосферный ветровой профилемер P-диапазона TWP16
China Huayun Meteorological Technology Group Co., Ltd.
Комплексные услуги персонального менеджера полного цикла для системной интеграции логистики
Zhongding Intelligent (Wuxi) Technology Co., Ltd.
Интеллектуальная система мониторинга конвейерных лент
LUO YANG WIRE ROPE INSPECTION TECHNOLOGY CO., LTD.


Система управления жизненным циклом оборудования
AURY (TIANJIN) INDUSTRY GROUP CO., LTD.
Интеллектуальный автоматический калибратор давления ConST811A
Beijing ConST Instruments Technology Inc.
QPS-20A Резервированный переключатель питания
CHN ENERGY ZHISHEN CONTROL TECHNOLOGY CO., LTD.









