Медленная перезагрузка - понимание fsck и tune2fs

У меня возникла проблема с моим веб-сервером: если он долгое время работал, а затем по какой-то причине не работает, загрузка занимает целую вечность.

Мой обходной путь к этому состоял в том, чтобы создать cron для периодической перезагрузки сервера (я был оскорблен за это, будьте добры). Перезагрузка была настолько быстрой, что сервер смог ответить на запросы до того, как они истекли, поэтому я с этим справился.

Но теперь мне сказали, что причиной этого может быть форсирование fsck через X дней, а также после Y монтирований, так что мое исправление не сильно поможет.

Итак, вопрос в том, что мне делать с fsck? Принудительно запускать его чаще или отключить? Может ли он работать в любое время или во время загрузки? Пример того, как это сделать с помощью tune2fs, также приветствуется.

1
задан 19 November 2012 в 21:34

2 ответа

Сначала ответим на самый простой вопрос: проверка файловой системы «в любое время» (т. Е. Когда система запущена) называется «оперативной» проверкой, и в целом она не поддерживается. Причина проста: когда монтируется файловая система, ядро ​​выполняет произвольные действия с фактическим блочным устройством - это нормально, потому что оно отслеживает то, что оно делает. Но когда вы добавляете fsck в микс, он тоже портится с необработанным блочным устройством и не информирует ядро ​​ о том, что он делает. Таким образом, они, по сути, наступают друг другу на ноги, когда вносят изменения в диск, и в результате вы получаете поврежденную файловую систему. Даже если вы просто «проверите» в режиме только для чтения, результаты, возвращаемые fsck, будут бессмысленными, опять же, потому что fsck не имеет представления о том, что делает ядро.

Чтобы изменить частоту проверки файловой системы при ее монтировании, вы будете использовать tune2fs, как вы упоминали. Предположим, вы хотите каждые 30 перезагрузок fsck. Сделайте

# tune2fs -c 30 /dev/sdaX

(замените блочное устройство для вашей файловой системы.)

Или, если по какой-то причине вы хотите полностью отключить проверку на основе счетчика монтирования,

[ 111]

Если вы хотите проверить календарь, вы можете использовать -i. Например, чтобы проверять каждую неделю, выполните

# tune2fs -i 1w /dev/sdaX

. Вы можете использовать d для дней, w для недель и m для месяцев. Опять же, чтобы отключить проверку по календарю, задайте значение 0 для интервала. Пожалуйста, пожалуйста, пожалуйста, не отключайте все проверки. В какой-то момент вы испортите вашу файловую систему.

В общем, вы можете избежать неприятностей с более длинными интервалами, если файловая система занесена в журнал, хотя это не замена. Для получения дополнительной информации прочитайте справочные страницы для e2fsck и tune2fs; они где я получил большую часть информации для этого. Надеюсь, это поможет!

0
ответ дан 19 November 2012 в 21:34

Измените запланированную перезагрузку, чтобы включить одно из следующих

touch /forcefsck; reboot

или

shutdown -rF now

Наличие /forcefsck скажет ОС сканировать диски (I Я почти уверен, что именно это и делает вторая команда.

Используйте cron, чтобы запланировать это на период, когда сервер имеет наименьшую нагрузку, и отключите другие запланированные проверки (дата / количество подключений), как только вы будете уверены, он работает правильно.

0
ответ дан 19 November 2012 в 21:34

Другие вопросы по тегам:

Похожие вопросы: