Примерно две недели назад захожу на один из веб-серверов и благодаря средствам мониторинга вижу на нём неприлично высокую нагрузку. И судя по всему, приличную часть ресурсов отжирает один процесс Apache’а. Но на сервере не один десяток сайтов. Как понять, какой именно сайт/скрипт тормозит? Очень просто.
В этом нам поможет mod_status. Нужно добавить его в список загружаемых модулей и сконфигурировать в файле status.conf. Настройки там довольно очевидны, поэтому останавливаться. В результате можно открыть на сервере страницу статуса apache: www.site.ru/server-status . На этой странице будут отображены все текущие процессы сервера, запросы и виртуальные хосты. Чаще всего этой информации достаточно, чтобы понять какой именно сайт/скрипт тормозит и применить меры к устранению тормозов.
А есть ещё более суровый способ. Запускаем htop , находим процесс apache, который жрёт больше всего ресурсов процессора. Запоминаем номер этого процесса и даём в консоли команду:
lsof | grep pid | grep /var/vhosts
где pid — номер процесса, /var/vhosts — путь к папке где лежат сайты.
Но я предпочитаю первый вариант. Он более информативен, на мой взгляд.