Ускоряем работу FAT (PCFS) в OpenSolaris

Всем пользователям OpenSolaris, кто работал с данными на флешках, известна проблема низкой производительности драйвера файловой системы PCFS (FAT). До недавнего времени запись данных на флеш и чтение с них выполнялись в разы медленнее, чем под другими ОС. Теперь у нас есть новогодний подарок от участника KirovOSUG, Руслана Увашева, — оптимизированный драйвер PCFS.


Имеется ограничение — оптимизация не работает и в будущем не планируется реализовывать для устройств с ФС FAT_X, имеющих размер кластера < 4КБ,  т.е. меньших размера страницы памяти. Данное ограничение подаляющего  большинства флешек не касается.
Оптимизация основана на механизме упреждающего чтения данных с диска в память. Причиной отказа от оптимизации с размером кластера меньших размера страницы является сильное усложнение алгоритма упреждающего чтения.

На данный момент доступна 32-битная версия нового драйвера PCFS.
Предлагаем всем скачать (не забудьте убрать разрешение файла  .txt) и протестировать. В случае выявления ошибок- писать об этом на форуме.

Файл драйвера следует располагать в /usr/kernel/fs/.
Получение информации о драйвере: modinfo | grep pcfs
Выгрузка драйвера: modunload –i <Id>

Загрузка драйвера: modload /usr/kernel/fs/pcfs
Сначала следует выгрузить старый драйвер, а потом — загрузить новый.


Результаты тестирования:

старый драйвер чтение — 3 МБ/с запись — 2.2 МБ/с
новый драйвер чтение — 9 МБ/с запись — 10 МБ/с
Кроме того, в драйвере пофикшен баг с определением фат в логических
разделах.

Скачать драйвер PCFS (не забудьте убрать разрешение файла  .txt)

  1. Kamir
    2 January 2010 в 13:10 | #1

    Клево :) Надо будет заюзать.

  2. 2 January 2010 в 16:48 | #2

    Попробуйте, отпишитесь, затем я дополню результаты тестирования

  3. 2 January 2010 в 17:11 | #3

    А исходник посмотреть можно? Очень интересно.

  4. Melancholic
    19 January 2010 в 01:17 | #4
  5. Melancholic
    21 January 2010 в 15:01 | #5

    Найдена ошибка при записи с размерами кластеров в 16 и 32 Кб для FAT и FAT32, в оптимизированной версии, в исходной же найдены отклонения в чтении по сравнению с виндовой версией при просмотре таблицы фат.

    Идет исправление...

Показать Спрятать 2 уведомления

Оставить комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>