Цифрова незалежність з оновленням Immich 3.0
Розблокування швидкості PCIe Gen5 у Linux

Проблема низької ефективності роботи з високошвидкісними SSD проявляється найгостріше під час випадкового читання блоків розміром 4 КБ. У таких сценаріях виникає парадокс: фізичний носій здатен обробляти мільйони операцій за секунду, проте центральний процесор стає «вузьким місцем». Аналіз продуктивності показав, що ядро Linux витрачає надмірні ресурси на службові операції ще до того, як дані фактично почнуть передаватися з диска.
Основним джерелом затримок виявилася підсистема iomap. Ця частина ядра відповідає за зіставлення логічних адрес файлів із фізичними блоками на накопичувачі при використанні прямого введення-виведення (Direct I/O). У стандартному режимі роботи процесор змушений обслуговувати складний автомат станів і постійно виділяти пам'ять під тимчасові службові структури. Коли система стикається з величезним потоком дрібних запитів, ці накладні витрати — так званий оверхед — починають домінувати над корисною роботою, обмежуючи загальну пропускну здатність системи.

Для розв'язання цієї проблеми була розроблена концепція «спрощеного шляху» (simple dio path). Суть оптимізації полягає у створенні свого роду «експрес-коридору» для запитів, що відповідають певним критеріям безпеки та простоти. Якщо операція є лише читанням, обсяг даних не перевищує розмір блоку файлової системи (зазвичай 4 КБ), файл не зашифрований і використовується одна з підтримуваних файлових систем (EXT4 або XFS), ядро повністю ігнорує важковаговий автомат станів iomap.
Такий підхід дозволяє мінімізувати обчислювальні затримки, спрямовуючи запит на нижні рівні стека введення-виведення найкоротшим шляхом, оминаючи етап динамічного виділення пам'яті. Це перетворює процес обробки з багатоступеневого бюрократичного циклу на стрімкий потік даних.
Ефект від впровадження цього механізму стає особливо помітним при використанні io_uring — сучасного інтерфейсу асинхронного введення-виведення в Linux, який сам по собі радикально знижує кількість системних викликів. У зв'язці з оптимізованим шляхом iomap продуктивність на файлових системах EXT4 та XFS демонструє вражаючий стрибок: показники випадкового читання блоків 4 КБ зросли з 1,92 млн до 2,19 млн IOPS. Приріст у 14% може здатися скромним на перший погляд, але в масштабах високонавантажених серверів і баз даних така різниця означає колосальне зниження затримок і підвищення загальної відгукуватості системи.
Наразі відповідні патчі вже пройшли стадію рецензування та інтегровані у спеціалізовані гілки розробки VFS. Очікується, що фінальний пул-реквест буде включено в основну гілку ядра під час вікна злиття Linux 7.3. Якщо процес розробки піде за намеченим графіком, користувачі отримають доступ до цих оптимізацій уже до кінця поточного року, що дозволить повноцінно реалізувати можливості найшвидшого покоління споживчих та серверних накопичувачів.

