У меня возникла проблема с моим веб-сервером: если он долгое время работал, а затем по какой-то причине не работает, загрузка занимает целую вечность.
Мой обходной путь к этому состоял в том, чтобы создать cron для периодической перезагрузки сервера (я был оскорблен за это, будьте добры). Перезагрузка была настолько быстрой, что сервер смог ответить на запросы до того, как они истекли, поэтому я с этим справился.
Но теперь мне сказали, что причиной этого может быть форсирование fsck через X дней, а также после Y монтирований, так что мое исправление не сильно поможет.
Итак, вопрос в том, что мне делать с fsck? Принудительно запускать его чаще или отключить? Может ли он работать в любое время или во время загрузки? Пример того, как это сделать с помощью tune2fs, также приветствуется.
Сначала ответим на самый простой вопрос: проверка файловой системы «в любое время» (т. Е. Когда система запущена) называется «оперативной» проверкой, и в целом она не поддерживается. Причина проста: когда монтируется файловая система, ядро выполняет произвольные действия с фактическим блочным устройством - это нормально, потому что оно отслеживает то, что оно делает. Но когда вы добавляете fsck в микс, он тоже портится с необработанным блочным устройством и не информирует ядро о том, что он делает. Таким образом, они, по сути, наступают друг другу на ноги, когда вносят изменения в диск, и в результате вы получаете поврежденную файловую систему. Даже если вы просто «проверите» в режиме только для чтения, результаты, возвращаемые fsck, будут бессмысленными, опять же, потому что fsck не имеет представления о том, что делает ядро.
Чтобы изменить частоту проверки файловой системы при ее монтировании, вы будете использовать tune2fs, как вы упоминали. Предположим, вы хотите каждые 30 перезагрузок fsck. Сделайте
# tune2fs -c 30 /dev/sdaX
(замените блочное устройство для вашей файловой системы.)
Или, если по какой-то причине вы хотите полностью отключить проверку на основе счетчика монтирования,
[ 111] Если вы хотите проверить календарь, вы можете использовать -i
. Например, чтобы проверять каждую неделю, выполните
# tune2fs -i 1w /dev/sdaX
. Вы можете использовать d
для дней, w
для недель и m
для месяцев. Опять же, чтобы отключить проверку по календарю, задайте значение 0
для интервала. Пожалуйста, пожалуйста, пожалуйста, не отключайте все проверки. В какой-то момент вы испортите вашу файловую систему.
В общем, вы можете избежать неприятностей с более длинными интервалами, если файловая система занесена в журнал, хотя это не замена. Для получения дополнительной информации прочитайте справочные страницы для e2fsck и tune2fs; они где я получил большую часть информации для этого. Надеюсь, это поможет!
Измените запланированную перезагрузку, чтобы включить одно из следующих
touch /forcefsck; reboot
или
shutdown -rF now
Наличие /forcefsck
скажет ОС сканировать диски (I Я почти уверен, что именно это и делает вторая команда.
Используйте cron, чтобы запланировать это на период, когда сервер имеет наименьшую нагрузку, и отключите другие запланированные проверки (дата / количество подключений), как только вы будете уверены, он работает правильно.