файловая система для миллионов маленьких файлов

Что Вы используете для тестирования ссылки?

Очень легко насыщать ссылку на 100 Мбит/с и большую часть ссылки на 1 Гбит/с, если Вы просто продвигаете материал из памяти.

При попытке считать материал из диска, и передать другой системе, тем не менее, Вы будете ограничены производительностью диска.

44
задан 18 June 2019 в 17:02
7 ответов

Вот некоторые результаты, сравнивающие весь главный Linux FSes с bonnie ++, что можно использовать в качестве начальной точки.

С точки зрения случайного ищет победы Reiser, сопровождаемые EXT4, сопровождаемым JFS. Я не уверен, будет ли это коррелировать точно к поискам каталога, но кажется, что это был бы индикатор. Необходимо будет сделать собственные тесты для этого конкретно. EXT2 бьет штаны от всего в течение времен создания файла, вероятно, из-за его отсутствия журнала, все еще EXT4 бьет все кроме Reiser, который Вы не можете хотеть использовать из-за текущего статуса hans reiser.

Вы могли бы хотеть изучить диски, которые поддерживают NCQ и удостоверяются, что Ваша установка является установкой для использования его. При тяжелом поиске его должен обеспечить повышение скорости.

Наконец, удостоверьтесь, что Ваша машина имеет тонну поршня. Так как файлы не часто обновляются, Linux закончит тем, что кэшировал большинство из них, чтобы врезаться, если он будет иметь свободное пространство. Если Ваши шаблоны использования будут правильными, то это даст Вам крупное повышение скорости.

19
ответ дан 28 November 2019 в 19:41
  • 1
    проблема bonnie ++ состоит в том что это doesn' t даже примерно тестируют мой сценарий использования –  bene 10 May 2009 в 17:54
  • 2
    You' ve понял мысль об этом не тестирование поисков каталога, но честно, если that' s Ваше узкое горло, you' ре более обеспеченный дамп Ваши данные в реальную базу данных. Файловые системы don' t работа почти также над маленькими объектами большинство баз данных разработано для использования –  Andrew Cholakian 12 May 2009 в 05:24

Я знаю, что это не прямой ответ на Ваш вопрос, но в этих случаях я думаю, что база данных могла бы более подойти для хостинга этого. Маленькие файлы могут храниться в двоичном формате в таблице базы данных и получаться в wil. Программное обеспечение, которое использует эти файлы, должно смочь поддерживать это хотя...

3
ответ дан 28 November 2019 в 19:41
  • 1
    Что такое файловая система, если не только иерархическая база данных? Ваше предложение добавляет слои абстракции, сложности и программного обеспечения, которые, вероятно, не гарантированы. Кроме того, question' s владелец выполняет его задачу с ' UNIX Philosophy' который я подозреваю, что Вам не нравится быть большим количеством парня Windows? –  Stu Thompson 10 May 2009 в 13:14
  • 2
    В первую очередь, у меня ничего нет против Unix или чего-либо еще в той области. Существуют большие различия между файловыми системами и базами данных и that' s, почему были разработаны обе технологии. Базы данных разработаны для работы с огромным количеством малых предприятий, в которых они делают лучшее задание, чем большинство файловых систем. Я просто указывал, что могла бы быть другая дорога, которую можно взять с этим. –  Jeroen Landheer 11 May 2009 в 22:16

Я соглашаюсь с большей частью того, что сказал Andrew, за исключением того, что я рекомендую Reiser4 или более старое (но лучше поддерживаемый) ReiserFS. Как те тесты (и документация для ReiserFS) указывают, это разработано для precicesly ситуация, которую Вы спрашиваете о (большие количества небольших файлов или каталогов). Я использовал ReiserFS в прошлом с хинду и Ubuntu без любых проблем.

Относительно состояния Hans Reiser, я не вижу его как являющийся проблемой с кодом или устойчивостью самой Файловой системы. Reiser4 даже спонсируется и DARPA и Linspire поэтому, в то время как я соглашаюсь, что дальнейшее развитие Файловой системы Reiser является неопределенным, я не делаю вещи, которая должна быть решающим фактором относительно того, должен ли кто-либо использовать его или нет.

8
ответ дан 28 November 2019 в 19:41
  • 1
    I' ve использовал ReiserFS в течение долгого времени. На самом деле, I' m все еще использование его на более старом хинду сервере I haven' t найденный время переустановка все же. Этой установке 4 года в этом мае. То, что я могу говорить Вам, - то, что это значительно замедлилось. То явление происходило со временем на всем использовании файловых систем ReiserFS, которые находятся в активном read+write использовании на всех машинах, которые имели такие файловые системы, никакие исключения - поэтому, если Вы хотите использовать его за длительный промежуток времени it' s что-то для учета. I' ve отодвинут от него, с помощью XFS для больших файловых систем теперь. –  Mihai Limbăşan 10 May 2009 в 03:54

Я предполагаю ext3 (или ext4), возможно, JFS был бы хорошим решением. Я был бы осторожен с ext4, и btrfs (файловые системы хитры - быть подготовленными с резервными копиями, если Вы хотите использовать последний, новейший материал).

Существуют также различные параметры, которые можно настроить в течение mkfs времени для настройки файловой системы на симпатию.

Я, конечно, рекомендовал бы против XFS. Не потому что это - плохая файловая система, но создание/удаление является дорогостоящей операцией на нем.


Для предотвращения проблем с поисками каталога используйте интеллектуальную схему именования, например:

<first letter of id>_<last letter of id>/<id>

или подобные, более сложные схемы. Это ускорит Ваши поиски каталога и таким образом общие скорости доступа. (Это - старый прием Unix, назад от V7, я думаю),

1
ответ дан 28 November 2019 в 19:41
  • 1
    what' s преимущество использования первого и последней буквы и не только первых букв n? –  bene 11 June 2009 в 17:55
  • 2
    it' s только одна из возможных схем - было ли это преимуществом, зависит от " key" используемый для индексации. Эта конкретная схема, которую я видел ссылаемый с приложением, которое хранило данные на людях в организации и этот путь they' ve получил лучшую индексацию. Как всегда, необходимо адаптировать его к данным и затем представить, пока Вы не находите точные ответы :) –   30 June 2009 в 21:31

Большая часть FS будет дросселировать с больше, чем 65K файлами в dir, я думаю, что это все еще верно для ext4. Файловые системы Reiser не имеют того предела (люди по mp3.com заплаченный для проверки в этом). Не уверенный в чем-либо еще, но это - один из сценариев использования, для которых был сделан ReiserFS.

1
ответ дан 28 November 2019 в 19:41

Кто-то из Unix StackExchange создал тест (с исходным кодом) для тестирования только этого сценария:

Q: Какая файловая система Linux является самой высокопроизводительной для хранения большого количества небольших файлов? (HDD, а не SSD)?

Похоже, что лучшая производительность чтения обеспечивается ReiserFS.

3
ответ дан 28 November 2019 в 19:41

По моему опыту, ext2 вытесняет ext4 из воды для небольших файлов. Если вас не волнует целостность записи, это здорово. Например, subversion создает много-много-много маленьких файлов, которые блокируют ext4 и другие файловые системы (XFS) (запускает задание cron, которое синхронизирует данные с ext4 на ext2 каждые полчаса или около того, что практически решает проблему)

. ] Выполнение этих команд делает ext2 еще быстрее (даже несмотря на то, что большинство из этих параметров делают файловую систему нестабильной после сбоя, если вы не запустите синхронизацию до сбоя). Эти команды почти не влияют на ext4 с небольшими файлами.

echo 15 > /proc/sys/vm/swappiness
echo 10 > /proc/sys/vm/vfs_cache_pressure
echo 99 > /proc/sys/vm/dirty_ratio
echo 50 > /proc/sys/vm/dirty_background_ratio
echo 360000 > /proc/sys/vm/dirty_expire_centisecs
echo 360000 > /proc/sys/vm/dirty_writeback_centisecs
echo "2000" > /proc/sys/vm/vfs_cache_pressure
3
ответ дан 28 November 2019 в 19:41

Теги

Похожие вопросы