Ускоряем работу 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)

HostLife - лучший платный хостинг


Systemintegra

Comments

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

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

  3. Melancholic says
  4. Melancholic says

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

Speak Your Mind

*

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Пожертвование