Как устранить неполадки с зависанием сервера Linux
У меня есть несколько машин Ubuntu Server 8.04 в удаленном месте. Каждые пару месяцев или около того один из них перестанет отвечать на запросы, и его нужно будет выключать и включать. Из просмотра моих файлов журнала кажется, что все мои процессы работают нормально, пока в какой-то момент все просто останавливается.
Я подозреваю, что это аппаратная проблема, но я даже не знаю, как начать определять проблему. Существуют ли какие-либо диагностические инструменты или методы, предназначенные для отслеживания подобных проблем?
Я знаю, что это довольно общий вопрос, но я надеюсь на общий ответ.
5 ответов
Подключите другой компьютер и настройте последовательную консоль, чтобы получать все сообщения ядра и тому подобное, которые появляются. Если это паника ядра или какая-то другая катастрофическая проблема, вы увидите это там. Мониторинг температуры и запуск memtest также рекомендуется, особенно если консоль не показывает ничего ненормального, прежде чем колеса упадут.
Memtest будет первым пунктом вызова, хотя, если вы можете, попросите центр подключить консоль в следующий раз, когда она выйдет из строя. Если ядро собирается, оно должно что-то выводить на экран.
У меня была похожая проблема в прошлом, и она оказалась связанной с жарой. Улучшение тиража и добавление одного или двух вентиляторов помогли очень много.
Кроме того, убедитесь, что у вас включен SMART на ваших дисках, и посмотрите, возможно, один из них на последних ногах.
Возможно, вы захотите установить munin, чтобы отслеживать их все и видеть, что происходит.
Слишком мало информации дано на самом деле что-нибудь, что определенно будет работать.
Было бы хорошо узнать, как вы определяете "перестает" отвечать? Это просто ssh, который перестает отвечать или какой-то другой сервис? Любые идеи, если консоль все еще отвечает?
Есть ли какие-либо следы в лог-файлах после того, как машина вернулась в рабочее состояние после перезагрузки?
В любом случае, есть несколько вариантов, которые помогут вам собрать информацию:
- Включите getty на последовательной линии, и если вы не можете присоединиться к покупке последовательного сервера, подключите последовательные порты между машинами. Если по одной сети невозможно связаться через сеть, вы можете попытаться получить доступ через последовательный порт.
- установить программное обеспечение для мониторинга и получить статус от lmsensors, smart tools tec.
- отправить системные журналы на удаленную машину.
Добавьте комплексное решение для удаленного мониторинга с помощью чего-то вроде Zabbix. Мониторинг аспектов использования системных ресурсов, а также любой аппаратной статистики, доступной для операционной системы (например, скорости вращения вентиляторов, температуры и тому подобное). Таким образом, когда ваша система в следующий раз упадет, у вас будет несколько точек данных, на которые вы сможете посмотреть, в чем проблема.
При таком подходе вы можете обнаружить, например, что у вас есть процесс, который выходит из-под контроля с выделением ОЗУ, толкает систему в режим подкачки и заставляет убийцу нехватки памяти начать пробиваться сквозь ваши запущенные процессы, оставляя машину отвечать на запросы. Без мониторинга вы не могли бы знать это.