Apache (httpd) — вычисление нагрузки по конкретным хостам (vhosts)


Эта проблема меня волновала ещё пару лет назад, но после довольно плотного «гугления» в те времена я так и не нашел решения.

Спустя время вопрос снова поднялся — ко мне на сервер недавно переехал довольно тяжелый проектик (кстати ещё будут посты по поводу оптимизации и снижения нагрузки на конкретном примере — так как грузит сервак не слабо — ни хостинги, ни виртуальные сервера данный проект не выдерживают) и нужно в реале в текущий момент времени отслеживать кто же именно и на сколько грузит сервер — ни 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)”»

  1. > а вот конкретно по виртуальным хостам — облом

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

  2. виноват, смотрел только общие показатели сверху.
    конечно же, внизу видно virtual hosts

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *