Назад | Перейти на главную страницу

Лучшие варианты для создания и монтирования тома ext4, содержащего> 10M файлов в одном каталоге

Каковы подходящие варианты mkfs и mount для файловой системы ext4 с папкой, содержащей> 10 миллионов файлов для чтения?

Что у меня есть на данный момент:

umount /media/dirsizetest
mkfs.ext4 -L DIRSIZETEST -E lazy_itable_init=1 -E lazy_journal_init=1 -m 1 /dev/sda1
mount -t ext4 -o nodiratime /dev/sda1 /media/dirsizetest

Некоторый контекст в порядке. Я провожу слегка (хорошо, очень) сумасшедший эксперимент, в котором наблюдаю, как разные файловые системы работают с одной папкой, заполненной миллионами небольших файлов. В конце концов, я буду заполнять диск емкостью 1 ТБ, делая это (я же говорил вам, что это был сумасшедший эксперимент!).

Шаблон доступа выглядит примерно так:

Recreate the volume from scratch (using mkfs) and mount it.
Create a sub-directory, fill it with N files in sequence (named 1...N)
    (where N can be up to 2^63)
Read all files in order
Read all files in random order
Print how it takes

Моя естественная среда обитания - это мир Windows NTFS, и множество вариантов mount и mkfs немного устрашающие. Так что я ищу рекомендации о том, какие варианты могут повлиять на мою производительность.

Я работаю в 64-битной среде рабочего стола Ubuntu 12.04.

Внимание: совет по безопасности

Эти инструкции НЕ БЕЗОПАСНЫ и не должны использоваться в производственной среде без мер предосторожности.

Например, карта RAID с батарейным питанием может помочь снизить риски.

Используйте на свой страх и риск


Если вам просто нравится это в качестве тестовой среды, я бы порекомендовал варианты ext4

noatime,data=writeback,barrier=0,nobh,errors=remount-ro

это

  • отключает время доступа при чтении
  • лениво пишет метаданные
  • отключает принудительное соблюдение правильного порядка журнальных коммитов на диске
  • пытается избежать связывания заголовков буфера
  • перемонтирует только чтение при ошибке

для mkfs.ext4 я смог найти только вариант

dir_index
    Use hashed b-trees to speed up lookups in large directories.

полезный

Некоторое исследование я нашел по следующим ссылкам. Ответ Криса Перрина дает краткий список вариантов; они должны содержать дополнительные справочные материалы.