Файловая система/Опции для интенсивного случайного ввода-вывода

Не решение Вашей проблемы, но Joel Spolsky испытало эту проблему...

Пять whys: http://www.joelonsoftware.com/items/2008/01/22.html

2
задан 4 March 2011 в 17:22
3 ответа

Требования и ограничения:

  • 50:50 read:write отношение
  • Записанные файлы будут колебаться от пути, больше, чем размер блока к значительно больше, чем размер блока.
  • Отдельные запросы будут колебаться от 128 КБ до 4 МБ
  • На Linux
  • Файловая система будет довольно большой, на уровне 14 ТБ.

Неизвестные, которые помогли бы:

  1. Является ли случайный ввод-вывод в файлах или просто основан на целых файлах, считанных и записанных в блоках 128KB-4MB
  2. Частота обновлений файла.
  3. Параллелизм: частота параллельных операций чтения-записи (операция в секунду ввода-вывода).

Последовательный ввод-вывод

Если 50:50 отношение представлено путем чтения и записи целых файлов и довольно больших файлов в этом, то схемы доступа более последовательны, чем случайный, что касается файловой системы. Используйте основанную на степени файловую систему для увеличения sequentiality в файловой системе для лучшей производительности. Так как файлы являются настолько большими, читают вперед, обеспечит значительные повышения производительности, если поддерживается аппаратными средствами (некоторые RAID-контроллеры обеспечивают это).


Случайный ввод-вывод

Это изменяется, если Вы - планирование выполнения операций чтения-записи одновременно, при которой точке это действительно становится значительно случайным. То же применяется, если Вы держите большое количество открытых файлов и читаете/пишете небольшие части в тех файлах, как будто это была база данных.

Одно из самых больших неправильных представлений, с которыми я сталкиваюсь, является идеей, что дефрагментируемая файловая система работает лучше, чем фрагментированная при обработке очень случайного ввода-вывода. Это только верно в файловых системах, где операции метаданных страдают значительно во фрагментированной файловой системе. Для очень высоких уровней фрагментации основанные на степени файловые системы могут на самом деле перенести больше снижения производительности, чем другие стили управления блоком.

Тем не менее эта проблема только становится очевидной, когда схемы доступа ввода-вывода и уровень продвигают диски к своим максимальным возможностям. С 14 ТБ в файловой системе, которая означает между 7 и 50 шпинделями в массиве настоящего хранения, который приводит к обширному диапазону возможностей; в пределах от 630 операций в секунду ввода-вывода для 7x 2 ТБ 7.2K об/мин управляет к 9 000 операций в секунду ввода-вывода для 50x 300 ГБ 15K диски об/мин. 7.2K RAID-массив об/мин поразит насыщенность ввода-вывода намного быстрее, чем 15K RAID-массив об/мин был бы.

Если Ваш операционный уровень ввода-вывода не продвигает Ваши ограничения по объему памяти, выбор файловой системы должен базироваться больше на полной гибкости управления, чем тонкая настройка последних нескольких процентных пунктов производительности.


Однако, если Ваш ввод-вывод на самом деле работает, Ваше устройство хранения данных утончаются, именно тогда тонкая настройка начинает становиться необходимой.

XFS:

  • Смонтируйтесь: Набор 'allocsize' к не больше, чем 65 536 (64 МБ), но действительно устанавливают его высоко. Это улучшает скорость метаданных для доступов к файлу.
  • Смонтируйтесь: Набор 'sunit' к размеру дорожки Вашего RAID-массива. Может также быть установлен во время формата.
  • Смонтируйтесь: Набор 'swidth' к количеству дисков в Вашем RAID-массиве (или N-1 для R5, N-2 для R6). Может также быть установлен во время формата.
  • Формат: Если Вы действительно нуждаетесь в том последнем процентном пункте, помещаете вход в систему файловой системы устройство абсолютно отдельной системы хранения -l logdev=/dev/sdc3

EXT4:

  • Формат: -E stride набор к количеству блоков (или 512b или 4K в зависимости от диска) на дорожке отдельного диска в RAID.
  • Формат: -E stripe-width набор как 'swidth' в XFS
  • Формат: Как с XFS последний процентный пункт производительности может быть отжат путем размещения журнала на устройстве абсолютно отдельной системы хранения. -O journal_dev /dev/sdc3/
6
ответ дан 3 December 2019 в 09:24

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

Но, хорошо позвольте нам просто говорить об имени. Помимо XFS, я думаю, что ext4 удовлетворит Вашей потребности. Нижняя строка, я думаю, что Вам нужна основанная на степени файловая система для предотвращения фрагментации как можно больше. И XFS и ext4 поддерживают отложенную запись IIRC, таким образом, оба могли бы помочь Вам увеличить шанс сделать слияние записи также.

с уважением,

Mulyadi.

0
ответ дан 3 December 2019 в 09:24

Учитывая масштаб данных Вы имеете, я думаю, что Вы хотите посмотреть на сетевую кластерную файловую систему, как Блеск или собственный GPFS IBM. Они разработаны для предоставления высокоэффективных результатов при требовании рабочих нагрузок как Ваши.

0
ответ дан 3 December 2019 в 09:24

Теги

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