Отключение времени на файловой системе
Я устанавливаю набор реплик mongoDB, и одно из первых действий, которое я должен сделать, - отключить его в файловой системе. После небольшого исследования я не возражаю против этого, но я должен спросить, что использует atime? Я искал в Интернете и нашел очень мало в способе "это приложение или этот процесс использует время, и вы будете глупы, если выключите его", но я должен задаться вопросом, будучи параноиком по своей природе.
Итак, что использует atime, и если я выключу его, что может сломаться?
5 ответов
mutt
почтовый клиент использует время доступа к файлу для отслеживания новой почты, поступающей в почтовый ящик в формате mbox. По-видимому, эта проблема несерьезна, и ее легко обойти.
Кроме этого, трудно найти примеры вещей, которые ломаются на noatime
, Я запускаю несколько серверов Linux с noatime
на всех файловых системах, и я не могу вспомнить, чтобы когда-либо видел какие-либо проблемы, связанные с noatime
,
Если вы обеспокоены использованием noatime
в общем, вы можете выделить отдельную файловую систему для вашего mongoDB и монтировать только эту файловую систему с noatime
,
РЕДАКТИРОВАТЬ
Я нашел интересный блог на kerneltrap.org, в котором цитируются некоторые дискуссии между разработчиками Linux (Линус Торвальдс, Инго Молнар, Алан Кокс и другие) на тему atime
, Во втором письме Инго он говорит так:
... у меня нет никаких претензий к ext3 - с обязательной оговоркой, что "noatime,nodiratime" в /etc/fstab является обязательным. Это очень заметно ускоряет процесс, особенно когда к файлам обращаются. Довольно странно, что каждый рабочий стол и сервер Linux страдают от заметного снижения производительности ввода-вывода из-за постоянных обновлений atime, тогда как у него всего два реальных пользователя: tmpwatch [который можно настроить на использование ctime, так что это не является большой проблемой] и некоторые инструменты резервного копирования. (Ладно, я тоже думаю об уведомлении по почте.) Из десятков тысяч приложений. Таким образом, для большинства рабочих нагрузок на файлы мы даем Windows 20-30% производительности, почти ничего.
Инструменты, которые опрашивают использование файлов, такие как временные очистители файлов, используют его. Вы можете обойти это на некоторых файловых системах и ОС, используя relatime
вместо этого, который обновляет atime только после того, как прошло определенное время с момента его последнего обновления.
Вы также можете создать отдельную точку монтирования для своего набора реплик mongoDB. Затем вы можете установить параметр noatime только для этой точки монтирования, не затрагивая другие программы.
Как продолжение здесь, relatime
был установлен по умолчанию в ядре в 2.6.30, которое было выпущено в марте 2009 года. Это означает, что выигрыш от настроек noatime будет меньше на любом современном ядре.
Это по-прежнему рекомендация, поскольку для MongoDB все еще необходимо повысить производительность, но пока вы используете достаточно свежую версию ядра, это не так важно, как это было раньше.
Кроме того, в дополнение к программному обеспечению, упомянутому здесь, я также видел время, используемое инструментами резервного копирования.
Я просто хотел бы подчеркнуть момент @Steven Monday - использовать отдельную файловую систему.
Для базы данных это всегда хороший вариант и дает вам гораздо больше гибкости в настройке производительности базы данных при незначительном неудобстве дополнительной точки монтирования для управления. Обычно дает больше возможностей для моментального снимка базы данных и для резервных копий (еще удобнее в тех случаях, когда вы можете сделать снимок и сделать резервную копию реплики вместо главной)