Стоит ли настраивать Ext4 с noatime?


77

В предыдущих версиях Ubuntu (с файловой системой Ext3) я настраивал его для лучшей производительности с заметными результатами, устанавливая noatimeпараметр в /etc/fstab.

Стоит ли делать это с файловой системой Ext4, которая сейчас используется по умолчанию в Ubuntu? Если да, то каким образом процедура изменилась?

Пример этой настройки можно найти здесь.

Ответы:


66

В Ubuntu 10.04 relatimeявляется частью параметров монтирования по умолчанию, если не переопределено в /etc/fstab. Предыдущие несколько выпусков были relatimeявно в /etc/fstab. relatimeдает те же преимущества по скорости (и сохранению цикла записи во флэш-памяти) noatime, что и не доставляет проблем старомодным почтовым уведомлениям.

Статья, которую вы цитируете, рекомендует data=writeback. Ubuntu по умолчанию data=ordered. Настройка Ubuntu медленнее в случае большой загрузки диска, но несет в себе значительно меньший риск потери данных в случае сбоя или сбоя питания. Поэтому я бы не советовал переходить с Ubuntu по умолчанию.

Переход commit=5к commit=100увеличению временного окна, в течение которого данные будут потеряны в случае сбоя, в большинстве случаев дает небольшую выгоду.

Резюме: оставьте настройки как есть, они были выбраны не зря.


ДОБАВЛЕНО: Существуют и другие вещи, помимо параметров монтирования, которые могут изменить ситуацию. Переключение с ext3на ext4само по себе часто является заметным улучшением. Вот еще несколько советов для пользователей ноутбуков.

  • Если у вас медленный SSD, проверьте этот поток на SU . Важные советы использовать tmpfsдля /tmpи для кэша браузера (и , возможно , история).

  • Если у вас есть жесткий диск, и вы хотите, чтобы он перестал вращаться на продолжительное время, установите noflushd , который позволяет вращать диск, задерживая все записи до заполнения ОЗУ. (Конечно, чтение может привести к тому, что диск раскрутится; вам нужно привыкнуть работать cat /files/I/m/likely/to/need >/dev/nullдо того, как диск закрутится.) Чтобы noflushd был эффективным, отключите все операции подкачки и смонтируйте свои файловые системы с помощью чего-то вроде commit=3600,

    Эффективное использование noflushd означает, что ваши данные могут оставаться незаписанными на диск в течение длительного периода времени. Это риск, который можно сравнить с преимуществом отсутствия какого-либо шума или тепла от диска в течение некоторого времени. Не используйте noflushd, если вас не устраивает этот риск.


Я понимаю опасность подобной настройки, некоторые шаги в этом уроке, с которыми я не согласен, как, например, comit=100как вы упомянули. Но я готов пойти на некоторые умеренные риски, чтобы повысить производительность, поскольку я использую ноутбук и (почти) регулярно выполняю резервное копирование.
Децио Лира

2
@Decio: noatimeпротив atimeможет иметь видимое значение, но я был бы удивлен, что noatimeпротив relatime. Я добавил несколько советов, касающихся ноутбука, в свой ответ; Я лично наблюдал видимые улучшения от этих советов. Noflushd несет в себе риск, что я был готов пойти, когда я использовал его.
Жиль "ТАК - перестань быть злым"

Да, я просто гуглил разницу между noatime и relaytime, и вы правы. relaytime (который сейчас используется по умолчанию в Ubuntu) - хороший компромисс между atime и noatime.
Децио Лира

Я читал о data=writeback- он просто записывает данные файла и метаданные в случайном порядке (в отличие от того, orderedчто всегда записывает метаданные после данных) . Это означает, что при отключении питания вы можете найти файл длиной α байтов, где фактически записано 0 байтов. Ну ... Но это абсолютно естественно! Я всегда думал, что файловая система сначала увеличивает размер файла, а затем записывает данные. Чтобы найти его в обратном порядке, необходимо преобразовать этот шаблон для добавления кэширования в ОЗУ. Я не убежден, почему не использовать, writebackесли это может помочь в улучшении задержки.
Привет, Ангел,

17

Да, все еще может иметь смысл использовать noatimeс Ubuntu 12.10

relatimeопция монтирования по умолчанию И relatimeнамного лучше чем atime. Первый требует записи для первого чтения после записи, последний требует записи для каждого чтения. Но с noatimeкаждым чтением свободен от записи.

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

Подробное обсуждение сообщества ядра Linux находится по адресу http://kerneltrap.org/node/14148.


3
Фактор два не является правильным в целом. Теоретически коэффициент находится между 1 (бесконечно часто используемый файл) и 2 (бесконечно редко используемый файл). Это означает, что истинный фактор в основном равен 1, поскольку редко встречающиеся факторы, близкие к 2, не имеют значительного значения в среднем.
Патрик Хекер

1 для файлов только для записи. 2 для всех остальных. Нет смысла в файлах только для записи, но они могут появляться время от времени. Так что моя первоначальная оценка должна быть актуальной.
yanychar

@yanychar: спасибо за объяснение relatimeнедостатков и совместного обсуждение kerneltrap, но говорить « нет никакого смысла в записи файлов только » нонсенс: все /usrи /libтолько для чтения файлов. На самом деле, большая часть дерева, без /homeи /var, только для чтения. Файлы у меня /etcтоже меняются очень редко.
MestreLion

2
@MestreLion: Ubuntu устанавливает тонны пакетов. Пакеты обновляются время от времени. Если между моментами установки и обновления пакета не было чтения файла, файл был «только для записи». По relatimeсравнению с noatimeфайлом нет дополнительных записей . Для всего остального есть дополнительная запись, когда файл читается.
yanychar
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.