Я настраиваю набор реплик mongoDB, и одно из первых, что я должен сделать, - это отключить время в файловой системе. Изучив это немного, я не против этого, но я должен спросить, что использует время? Я поискал в сети и нашел очень мало предупреждений типа «это приложение или этот процесс использует время, и вы будете глупо, если выключите его», но, будучи параноиком по своей природе, я должен задаться вопросом.
Итак, что использует время, и если я его выключу, что может сломаться?
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
вместо этого, который обновляет время только по истечении определенного времени с момента последнего обновления.
Вы также можете создать отдельную точку монтирования для вашего набора реплик mongoDB. Затем вы можете установить параметр noatime только для этой точки монтирования, не затрагивая другие программы.
Как продолжение здесь, relatime
был сделан по умолчанию в ядре версии 2.6.30, выпущенной примерно в марте 2009 года. Это означает, что выигрыш от настроек noatime будет меньше на любом современном ядре.
Это по-прежнему рекомендация, потому что для MongoDB все еще есть прирост производительности, но пока вы используете достаточно актуальную версию ядра, это не так важно, как раньше.
Кроме того, в дополнение к упомянутому здесь программному обеспечению, я также видел время, используемое средствами резервного копирования.
Я просто хотел бы подчеркнуть один момент @Steven Monday - используйте отдельную файловую систему.
Для базы данных это всегда хороший вариант и дает вам гораздо больше гибкости в настройке производительности базы данных при незначительных неудобствах, связанных с дополнительной точкой монтирования для управления. Обычно дает вам больше возможностей для создания моментального снимка базы данных для резервного копирования (даже более удобно, если вы можете сделать снимок и сделать резервную копию реплики вместо мастера).