Определяем нагрузку на сервер Apache. Статьи. wb0.ru - Все для веб-мастера, on-line сервисы

Определяем нагрузку на сервер Apache

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

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

  • количество процессов, выполняющих обработку запросов;
  • количество процессов, которые находятся в состоянии ожидания;
  • состояние каждого процесса, число обработанных им запросов и переданных данных;
  • общее количество запросов и переданных данных;
  • время работы сервера (запуск, перезапуск и общее время работы (uptime));
  • общая статистика: среднее число запросов в сек, байт на запрос, байт в сек;
  • использование CPU каждым процессом отдельно и apache'ем в целом в данный момент;
  • хосты и их запросы, которые обрабатываются в данный момент.
Переходим к настройке.
  1. Подключаем модуль. Для этого в файле httpd.conf снимаем комментарий со строки

    LoadModule status_module modules/mod_status.so

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

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

    Как видите, данные мы получили, но анализировать их, глядя на стандартную страницу не очень удобно.

    Например, на скриншоте показано состояние процессов apache:

    Символ подчеркивания означает, что процесс ожидает соединения, буква "W" - отправка ответа, точка - открытый слот без процесса.

    Примечание. Скриншот сделан для локального севера, поэтому единственный процесс, который выполняет отправку запроса - это тот, который формирует страницу со статистикой.

    Кроме того, если у вас данные постоянно обновляются (используется параметр refresh), то визуально оценить изменения будет очень сложно.

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

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

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

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

      $statusurl = "http://localhost/server-status";

      $refreshtime = 2;
      $scalefaktor = 1;

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

      serverstatus.php

      serverstatus2.php

    3. Класс, выполняющий анализ страницы со статистикой (class.parse_server_status.php). Самый интересный компонент . Его можно использовать в собственных скриптах.
    При работе вам будут нужны 2 метода этого класса:
    1. parse_server_status($url) - в параметре $url задаем адрес страницы со статистикой.
    2. getActiveConnections() - возвращает массив с информацией об активных соединениях. На данный момент этот массив содержит: идентификатор процесса, режим работы, время работы процесса, использование CPU, имя виртуального хоста и URI запроса.
    Таким образом, несложно написать собственный скрипт, который будет сохранять данные о работе сервера.

Дата публикации: 13.09.2010
simplecoding.org

Статьи по теме:

   Ваш псевдоним:
Ваш комментарий:

Календарь событий


Новости Интернет


Поиск





Последний пересчет

тИЦ:07 Окт 15
PR:09 Дек 13

Наши партнеры

wservices.ru - регистрация доменов, Whois-сервисы Смайлы на все случаи жизни


 
Copyright © 2006-2024, wb0.ru