Определение нагрузки на сервер apache

Posted by & filed under Программы.

Для этого, необходимо подключить модуль mod_status. Он отслеживает работу сервера и показывает данные в виде обычной html страницы. С его помощью можно узнать:

1) количество процессов, выполняющих обработку запросов;

2) количество процессов, которые находятся в состоянии ожидания;

3) состояние каждого процесса, число обработанных им запросов и переданных данных;

4) общее количество запросов и переданных данных;

5) время работы сервера (запуск, перезапуск и общее время работы (uptime));

6) общая статистика: среднее число запросов в сек, байт на запрос, байт в сек;

7) использование CPU каждым процессом отдельно и apache’ем в целом в данный момент;

8 ) хосты и их запросы, которые обрабатываются в данный момент.

Настройка.

1) Подключаем модуль.
Для этого в файле httpd.conf снимаем комментарий со строки
LoadModule status_module modules/mod_status.so

2) И открываем доступ к статистике. Добавляем в httpd.conf следующие строки

  1. # включаем расширенную статиститку
  2. ExtendedStatus On
  3. <Location /server-status>
  4. SetHandler server-status
  5. Order Deny,Allow
  6. Deny from all
  7. Allow from 127.0.0.1
  8. </Location>

Примечание. Здесь мы разрешили доступ к статистике только для адреса 127.0.0.1 (localhost). Для тестирования удаленного сервера вам нужно будет эту настройку изменить.

3) Перезапускаем apache.

Теперь можно просматривать статистику.

Для этого вводим в браузере URL

http://localhost/server-status

или, если вы хотите, чтобы страница обновлялась автоматически

http://localhost/server-status?refresh=15

(вместо цифры 15 ставите задержку в секундах).

Есть ещё один вариант страницы с этими же данными:

http://localhost/server-status?auto&refresh=3

Обработка статистики.

Скрипт, который будет собирать данные, и показывать их, например, в виде графика.

В качестве примера такого скрипта рассмотрим Visualize Apache Server Status (распространяется под LGPL лицензией).

Скрипт состоит из 3-х частей.

1) Конфигурационный файл (inc.config.php). Тут нужно указать адрес страницы со статистикой:

  1. $statusurl = «http://localhost/server-status»;

Время обновления данных и масштаб (используется для построения графика).

  1. $refreshtime = 2;
  2. $scalefaktor = 1;

2) Два скрипта (serverstatus.php и serverstatus2.php). Используются для отображения данных. Запускать можно любой из них. Информация одна и та же, только представлена по-разному.

3) Класс, выполняющий анализ страницы со статистикой (class.parse_server_status.php). Самый интересный компонент ;) . Его можно использовать в собственных скриптах.

При работе вам будут нужны 2 метода этого класса.

1) parse_server_status($url) – в параметре $url задаем адрес страницы со статистикой.

2) getActiveConnections() – возвращает массив с информацией об активных соединениях. На данный момент этот массив содержит: идентификатор процесса, режим работы, время работы процесса, использование CPU, имя виртуального хоста и URI запроса.

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