Эта проблема меня волновала ещё пару лет назад, но после довольно плотного “гугления” в те времена я так и не нашел решения.
Спустя время вопрос снова поднялся – ко мне на сервер недавно переехал довольно тяжелый проектик (кстати ещё будут посты по поводу оптимизации и снижения нагрузки на конкретном примере – так как грузит сервак не слабо – ни хостинги, ни виртуальные сервера данный проект не выдерживают) и нужно в реале в текущий момент времени отслеживать кто же именно и на сколько грузит сервер – ни top ни ps данную информацию не предоставляют – только процессы и загрузка, а вот конкретно по виртуальным хостам – облом.
Решение, как всегда, оказалось простым как и всё гениальное 🙂
MOD_STATUS
Модуль индейца mod_status позволяет снимать информацию о ВСЕХ процесса выполняемых в текущее время, аптайм сервера, процессорную нагрузку, информацию по трафику и т.п. САМОЕ ГЛАВНОЕ – виртуальных хост и запрос конкретного процесса httpd.
Именно то что нужно – КРАСОТА !
Настраивается элементарно, на раз-два-три:
Раз – подключаем сам модуль в httpd.conf
LoadModule status_module modules/mod_status.so
у меня уже был подключен (кстати этот факт навёл меня на мысль, что в апаче по умолчанию подключено много неиспользуемых модулей, сжирающих память – позже изучу этот момент поглубже и ознакомлю с результатами).
Два – Включаем сам модуль расширенней статистики
ExtendedStatus On
Три – “вешаем” на определенный урл (локацию server-status я немного переименовал ибо нехер по умолчанию оставлять)
<Location /server-status>
SetHandler server-status
# Order deny,allow
# Deny from all
Allow from [ваш IP]
</Location>
Можно по паролю – тогда так:
<Location /server-status>
SetHandler server-status
AuthType basic
AuthName “server-status”
AuthUserFile /var/www/.htpasswd
require valid-user
</Location>
Перезапускаем индейца service httpd restart
Всё – статистика доступна по адресу вашего сервера (или виртуального хоста куда зацепили локацию).
Лично у меня это http://IP сервера/server-status
4 комментария на «“Apache (httpd) – вычисление нагрузки по конкретным хостам (vhosts)”»
Интересный у вас способ.
да уж, действительно, элегантно и просто. И надо было столько времени голову ломать. Спасибо.
> а вот конкретно по виртуальным хостам — облом
может я неверное понял эту фразу, но в данном случае такой же облом, т.к. статистика общая для всего сервера, а не по виртуальным хостам.
только что проверил.
сам ищу как получить по виртуальным хостам.
виноват, смотрел только общие показатели сверху.
конечно же, внизу видно virtual hosts