Apache грузит систему. Как понять, какой скрипт тормозит

Примерно две недели назад захожу на один из веб-серверов и благодаря средствам мониторинга вижу на нём неприлично высокую нагрузку. И судя по всему, приличную часть ресурсов отжирает один процесс Apache’а. Но на сервере не один десяток сайтов. Как понять, какой именно сайт/скрипт тормозит? Очень просто.

В этом нам поможет mod_status. Нужно добавить его в список загружаемых модулей и сконфигурировать в файле status.conf. Настройки там довольно очевидны, поэтому останавливаться. В результате можно открыть на сервере страницу статуса apache: www.site.ru/server-status . На этой странице будут отображены все текущие процессы сервера, запросы и виртуальные хосты. Чаще всего этой информации достаточно, чтобы понять какой именно сайт/скрипт тормозит и применить меры к устранению тормозов.

А есть ещё более суровый способ. Запускаем htop , находим процесс apache, который жрёт больше всего ресурсов процессора. Запоминаем номер этого процесса и даём в консоли команду:

lsof | grep pid | grep /var/vhosts

где pid — номер процесса, /var/vhosts — путь к папке где лежат сайты.

Но я предпочитаю первый вариант. Он более информативен, на мой взгляд.

EnglishRussianUkrainian