Я инициализировал один большой первичный раздел с -T small
флаг mke2fs
, small
в системе настраивается следующим образом:
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
Это твердотельный накопитель емкостью 800 ГБ (облачный накопитель), на котором будет храниться более 10 миллионов небольших файлов размером от ~ 10 КБ до ~ 100 КБ.
Я попытался тщательно изучить страницы руководства mount
и определим лучшую комбинацию флагов, и вот мой список:
rw
- прочти и напишиnosuid
- нет необходимости в идентификаторе пользователя или группы при выполненииnodev
- файлы блока разработки никогда не должны появляться здесьnoexec
- файлы с установленным битом exec также не приветствуютсяauto
- позволять mount -a
nouser
- только root
может (пере) монтироватьasync
- асинхронная записьrelatime
- обновлять время доступа только при изменении файлов.data=ordered
- предположительно должен улучшить производительность чтенияerrors=remount-ro
- прекратить писать при ошибкахdiscard
- рекомендуется для SSDauto_da_alloc
- бороться с повреждением файловой системы в случае сбоя питания (возможно, не нужно, так как это облачный диск?)inode_readahead_blks=16
- Файловая система станет домом для большого количества маленьких файлов, поэтому большая задержка чтения должна быть не более чем снижением производительности. Я не знал оптимального значения для файлов среднего размера 50 КБ, поэтому просто укажите здесь вдвое меньшее значение, чем значение по умолчанию.debug
Мне действительно нужно второе мнение от кого-то более опытного в этих вопросах. Я особенно не уверен в discard
, relatime
, data=ordered
, auto_da_alloc
, inode_readahead_blks
и другие флаги, которые я пропустил или неправильно понял. Насколько опасно data=writeback
? Сколько данных я могу потерять с таким флагом, это только последние 5 секунд (значение фиксации по умолчанию)? Другое мнение об этом упражнении?
Вы, наверное, должны просто используйте файловую систему XFS для этого.
ext4 не очень подходит для этой рабочей нагрузки, потому что вы используете SSD и у вас слишком большое количество файлов. Есть причина, по которой Red Hat теперь по умолчанию используется XFS.
Почему бы не рассмотреть возможность использования ZFS в Linux? ZFS определенно превосходит ext4 и считается готовой к производству на Linux. Видеть http://www.phoronix.com/scan.php?page=news_item&px=MTc4NTM
Установить несложно; видеть http://zfsonlinux.org/ для информации по установке.