1

Какова самая быстрая файловая система (и / или опции файловой системы) для диска, где мне все равно, выживут ли данные при сбое или отключении питания, например, / tmp?

Объем данных составляет несколько сотен гигабайт, поэтому не все умещается в оперативной памяти. Существует множество маленьких и очень больших файлов (например, HTML-файлы и видео).

Лучше всего просто создать большой раздел подкачки и использовать tmpfs? (Будет ли это даже работать?) Или я должен использовать ext2/3/4 или XFS или Btrfs? Какие варианты оптимизации я должен использовать, чтобы отключить все функции безопасности и добиться максимальной производительности файловой системы?

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

2 ответа2

2

Похоже, что ваши сборки довольно велики, поэтому я бы держался подальше от массивных swap + tmpfs - это могло бы привести к беспорядочной перестановке вашей системы во время сборки, что снизит производительность вашей сборки.

Для моих систем сборки у меня были только опции ext2 и ext3, ext2 был быстрее (понятно - журналирования нет).

Посмотрите также на tune2fs и опции монтирования в дополнение к опциям mkfs (если применимо). Вы могли бы, вероятно, отбросить такие вещи, как user_xattr, acl. Вы можете быть в состоянии отказаться от временных отметок (noatime, nodiratime), но с осторожностью - некоторые сборки может зависеть от этого.

Не забывайте о фрагментации, она действительно возникает в таких высокопроизводительных перегородках, особенно если они часто превышают 80-90% уровня заполнения. Я переформатировал разделы сборки примерно раз в месяц - для моих сборок это означало улучшение на 10-15%.

ИМХО, лучший способ достичь этого - по-настоящему опробовать ваши варианты, измерить и сравнить, используя одну из ваших типичных сборок в качестве эталона.

Примечание: скорость жесткого диска не может быть существенным ограничивающим фактором в общей скорости сборки (у меня были сборки, у которых улучшение tmpfs/ramfs по сравнению с жесткими дисками было менее чем на 10%). Структура сборки / зависимости / параллелизм (который может изменяться во времени по мере развития кода), фактор -j, загрузка ЦП / ОЗУ, работа в сети, другие сервисы инфраструктуры, которые может использовать ваша сборка, также могут иметь значение.

0

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

Использование tmpfs/swap обременит ваше процессорное время, когда данные выталкиваются и извлекаются из памяти. Я бы не пошел по этому пути, потому что, если это сервер сборки, вы, вероятно, хотите, чтобы эти циклы шли в любом случае.

Что касается типа файловой системы, я бы выбрал любую файловую систему и смонтировал ее с помощью "noatime". Это даст наилучшую производительность при наименьшем объеме работы для начала тестирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .