Новый патч для ядра Linux ускорит работу с FAT32 в 265 раз

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

В готовящееся ядро Linux 7.4 вошел пакет патчей, кардинально оптимизирующий работу драйвера архаичной файловой системы FAT32. Изменения затрагивают системный вызов fallocate() и его режим сохранения размера, используемый загрузчиками, базами данных и менеджерами закачек для резервирования дискового пространства без изменения длины самого файла во избежание фрагментации.


Внезапное ускорение устаревшего формата затронет в первую очередь встраиваемые системы и видеорегистраторы. (Иллюстрация к новости сгенерированна AI)
Автор: Flow Источник: flow.google.com

Прежняя реализация драйвера FAT выделяла пространство на диске последовательно — буквально по одному кластеру за раз, постоянно обновляя таблицу размещения файлов. Из-за этого для резервирования скромных 16 МБ памяти на томе с кластерами по 4 КБ система совершала около четырёх тысяч циклов записи. Новый патч снимает жесткие ограничения распределителя памяти и позволяет передавать всю цепочку кластеров единым запросом, сокращая количество обращений к диску до минимума.

Согласно собственным тестам разработчика в виртуальной машине QEMU/KVM на блочном устройстве virtio, итоговые показатели напрямую зависят от типа монтирования тома. На обычных асинхронных дисках прирост скорости составляет от 5 до 19 раз. Однако на синхронных томах (sync mounts), где каждое обновление таблицы обязано физически дойти до накопителя перед завершением операции, показатели подскочили в 120-265 раз. Так, обработка 16 файлов общим объемом 16 МБ ускорилась с 92.5 секунд до долей секунды (0.348 с), а на 512-байтных кластерах время выполнения задачи сократилось с 12 минут до 3.4 секунд.

Несмотря на то, что радикальные показатели ускорения достигаются на специфических синхронных томах, применение патча снизит задержки при инициализации файлов в утилитах и встраиваемых системах, активно работающих с носителями стандарта FAT32.

Читайте также

Новости

Публикации