+7 495 008 8452
  • Загрузка
Выберите ваш цвет
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.

Изо дня в день, в один и тот же час сервер падает. DDoS - атака? Хостер не подтверждает. Агенты? Отключены. Cron? Нет. Хабраэффект? Хотелось бы, но нет. Шаловливые ручонки? Соблазнительная версия, но не в этот раз. Иногда проходит само, но чаще требуется перезагрузка сервера. В чем дело?

Бывает так. Поисковый робот обращается к вполне безобидному рабочему скрипту с таким сочетанием параметров, что запускает бесконечный (очень длинный) цикл или бесконечную рекурсию. Робот заходит на сервер в одно и то же время, обращается к скрипту 1 или 2 раза. В результате перегруженными оказываются один - два процесса Apache. Через некоторое время после ухода робота работа скрипта прекращается по timeout и процессы могут высвободиться, освобождая сервер. Но если обращений было много больше двух и затронуто большое количество процессов Apache, то ситуация сама собой не исправится и сервер придется перезагружать.

Как найти файл и скрипт, вызывающий проблему?

Используйте специальный модуль Apache, называемый mod_status. Для этого:

1. Проверьте, что этот модуль установлен и находится по адресу /etc/httpd/modules/mod_status.so
2. В файле /etc/httpd/conf/httpd.conf присутствуют и раскомментированы строки:

LoadModule status_module modules/mod_status.so

ExtendedStatus On

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

Просмотрите весь конфигурационный файл, строки не обязаны находится рядом. Если строки отсутствуют, добавьте их, проверьте корректность конфигурации (apachectl configtest) и перезапустите Apache (apachectl graceful).

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

curl http://127.0.0.1:80/server-status > /tmp/server_status.html

Сведения о состоянии сервера оказались записаны в файл server_status.html. Скачав его на локальную машину, запустите его в браузере и посмотрите, какой процесс сильно загружает CPU. Можно принимать меры!

Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...