У меня есть удаленный сервер под управлением Apache с некоторыми веб-сайтами. Иногда средняя нагрузка поднимается слишком сильно, и веб-сервер не отвечает

Я думаю, что это вызвано apache, но я не могу проверить, потому что сессия ssh закрывается автоматически, когда я вхожу. Я просто могу решить эту проблему, перезапустив сервер (на самом деле, я должен позвонить провайдеру, чтобы перезапустить его вручную).

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

Может кто-нибудь объяснить мой способ найти и решить проблему? Может быть, мне нужен триггер или что-то подобное, чтобы перезапустить Apache, когда средняя нагрузка возрастает, я не знаю.

Заранее спасибо.

1 ответ1

0

Первое, что вам нужно сделать, это следить за тем, что происходит, вернуться и обновить свой вопрос, когда у вас есть более подробная информация.

Используйте небольшой скрипт, который будет запрашивать загрузку системы и памяти каждые несколько секунд и сохранять эту информацию в файл. Возможно, что-то вроде этого:

#!/bin/sh
while true
do
    echo "-------`date`--------"
    echo "\t\t%MEM\t%CPU"
    ps ax -o comm,%mem,%cpu | sort -nk3 | tail -n 3
    sleep 30
done

Сценарий будет печатать статистику использования для трех самых тяжелых процессов процессора, а затем для трех самых тяжелых процессов памяти. Затем он будет ждать 30 секунд (вы можете изменить это, задав другой номер для sleep) и повторить все заново. Его вывод выглядит так в моей системе:

$ ./monitor.sh
-------Mon Feb  4 20:00:51 CET 2013--------
                %MEM %CPU
java             9.1  3.6
Xorg             3.3  4.9
firefox          8.1 12.2
        ---     
Xorg             3.3  4.9
firefox          8.1 12.2
java             9.1  3.6

Сохраните этот скрипт как monitor.sh, сделайте его исполняемым и запустите его в фоновом режиме, перенаправив его вывод в файл:

chmod 744 monitor.sh
./monitor.sh > usage.log &

Вы можете отслеживать прогресс, запустив tail -f usage.log .

Дайте этому поработать некоторое время и проверьте, что происходит в следующий раз, когда ваш сервер перестанет отвечать на запросы. Будьте осторожны, хотя скрипт выводит 9 строк каждые 30 секунд. Если вы позволите ему работать слишком долго, вы получите довольно большой файл. Не забудьте остановить это, когда вы собрали необходимую информацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .