Apache Benchmark + GNUPlot: Измерение и построение графика производительности вашего веб-сервера

Неважно, используется ли он Nginx, апаш, Lighttpd или иначе, любой сетевой администратор, у которого есть веб-сервер, в какой-то момент захочет узнать, насколько быстро веб-сервер отвечает на заданное количество запросов.

Управляемые службы-сервер-управление-e1368625038693

Тест Apache + GNUPlot

На этот раз мы будем использовать инструмент под названием Тест Apache, который, хотя в названии есть «apache», НЕ предназначен только для измерения производительности Apache, но также может использоваться для Nginx и других. На самом деле я буду использовать его для измерения производительности Nginx.

Мы также будем использовать GNUPlot, который поможет нам построить подобные графики из нескольких строк:

Результаты

Установка Apache Benchmark и GNUPlot

Apache Benchmark - это инструмент, который мы можем использовать после установки пакета Apache, GNUPlot будет доступен после установки пакета с тем же именем. Итак ...

В таких дистрибутивах, как Debian, Ubuntu или аналогичные:

sudo apt-get install apache2 gnuplot

В таких дистрибутивах, как ArchLinux или производных:

sudo pacman -S apache gnuplot

Нам нужно только установить пакет Apache, нам не нужно запускать его или настраивать что-либо еще, достаточно просто установить его.

Использование Apache Benchmark

Мы будем отправлять определенное количество запросов (100) группами по несколько (от 20 до 20) на определенный сайт. Мы сохраним результат в файле .csv (result.csv), а затем обработаем его с помощью GNUPloit, строка будет такой:

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

Очень важно указать конечный / в URL-адресе измеряемого сайта.

Это результат или журнал, который показывает мне, когда я тестирую сайт в своей сети:

Это ApacheBench, версия 2.3 <$ Revision: 1638069 $> Copyright 1996 Адам Твисс, Zeus Technology Ltd, http://www.zeustech.net/ Лицензия Apache Software Foundation, http://www.apache.org/ Benchmarking gutl.jovenclub.cu (проявите терпение) ..... готово

Серверное программное обеспечение: nginx Имя хоста сервера: gutl.jovenclub.cu Порт сервера: 80

Путь к документу: /
Длина документа: 206 байтов Уровень параллелизма: 20 Время, затраченное на тесты: 0.101 секунды Полных запросов: 100 Неудачных запросов: 27 (Соединение: 0, Получение: 0, Длина: 27, Исключения: 0) Ответы, отличные от 2xx: 73 Всего передано: 1310933 байта Передано HTML: 1288952 байта
Запросы в секунду: 993.24 [# / сек] (среднее)
Время на запрос: 20.136 [мс] (среднее) Время на запрос: 1.007 [мс] (среднее, по всем параллельным запросам) Скорость передачи: 12715.49 [Кбайт / сек] полученное время соединения (мс) мин. Среднее [+/- sd] median max Connect: 0 1 0.2 1 1 Обработка: 1 17 24.8 4 86 Ожидание: 1 15 21.5 4 76 Всего: 1 18 24.8 5 87 Процент запросов, обслуженных в течение определенного времени (мс) 50% 5 66% 6 75% 22 80% 41 90% 62 95% 80 98% 87 99% 87
100% 87 (самый длинный запрос)

Я выделил красным то, что считаю самым важным, то есть более или менее:

  1. Данные тестируемого сервера, а также рассматриваемый URL.
  2. Количество запросов в секунду.
  3. Сколько миллисекунд потребовалось серверу, чтобы обработать запрос, на который потребовалось больше всего времени, то есть на запрос, ответ на который потребовал больше всего времени.

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

Я рекомендую запустить тест 2 или 3 раза, чтобы вы создали что-то вроде маржи, поскольку результаты двух тестов подряд редко бывают идентичными.

Другие полезные параметры или параметры Apache Benchmark:

-k -H 'Accept-Encoding: gzip, deflate' : С этим ab примет кеш и сжатие, настроенные сервером, поэтому время будет меньше.

-f urls.txt : Итак, вместо того, чтобы просто проверять индекс сайта, он будет выполнять тесты на URL-адресах, которые мы указываем в этом файле.

Во всяком случае ... взгляни на мужчина ab для тебя что бы увидеть.

Отобразите результат в виде графика:

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

В той же папке, где у нас есть файл results.csv (помните, мы только что сгенерировали с помощью приведенной выше команды) мы собираемся создать файл с именем gnuplot.p:

nano plot.p

В него мы поместим следующее:

установить терминал png размер 600 установить вывод "results.png"установить заголовок"100 Запросы, 20 одновременные запросы "установить коэффициент размера 0.6 установить сетку и установить xlabel"петиции"установить ярлык"время отклика (мс)"сюжет"results.csv"используя 9 гладких сбезиров с заголовком строк"gutl.jovenclub.cu"

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

  1. Имя создаваемого файла изображения
  2. Количество общих и одновременных запросов.
  3. Имя только что созданного файла.
  4. Домен, над которым мы работаем.

Как только мы введем это, сохраните и выйдите (Ctrl + O , а затем Ctrl + X), выполним следующее:

gnuplot plot.p

И вуаля, это сгенерирует график с желаемым именем, мое:

результаты2 Конец!

В Apache Benchmark гораздо больше возможностей, а также множество комбинаций, которые мы можем использовать, чтобы сделать наш тест производительности еще более полным.

Но послушайте, это были основы 😉

Наслаждайтесь!


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

9 комментариев, оставьте свой

Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Франциско сказал

    Интересный тест apache, я не знал о gnuplot, можно ли изменить стиль вывода? Я говорю по поводу официального отчета.

    Привет из Чили.

    1.    КЗКГ ^ Гаара сказал

      Да, в сети много конфигураций для gnuplot, ищите в Google, чтобы увидеть, найдете ли вы что-то серьезное или достаточно профессиональное, чтобы использовать его, потому что это на любой вкус 🙂

  2.   Wolf119 сказал

    Эммм, я собираюсь протестировать его прямо сейчас на виртуальном сервере apache, который у меня запущен, чтобы увидеть, как это происходит в отношении GUTL, поскольку он очень быстро запускается из 80 запросов, верно? Давайте посмотрим, что 100 мс не ничего, но максимум, который дает на 10 запросов больше по сравнению с 70 на 80 с 80 на 90, привлекает мое внимание

    1.    КЗКГ ^ Гаара сказал

      Это должно быть связано с очередью или максимальным количеством потоков, которые необходимо обслуживать одновременно. Тем не менее, я провел тест без gzip, без deflate, без кеша или чего-то еще 😉

  3.   Чарли Браун сказал

    Очень интересно, особенно для использования GNUPlot. Насколько я понимаю, его можно использовать для создания графиков практически из любого набора данных, верно? ...

    1.    КЗКГ ^ Гаара сказал

      Да, конечно, вы передаете данные в файл через запятую или что-то в этом роде, вы указываете ему, как их обрабатывать, в файле конфигурации, и вуаля

  4.   Адольфо сказал

    Привет, я всегда трачу их на чтение этого блога, но я никогда не комментировал ни одну статью, и это кажется хорошей возможностью.
    Я хочу поделиться с вами тем, что этот тип графика может быть неверно истолкован, потому что Apache Bench сортирует результат, используя ttime (общее время) вместо последовательного времени. Хотя данные все еще верны, график, вероятно, не показывает то, что мы хотим.
    Здесь оставляю ссылку, где читал.
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    Привет.

  5.   Хьюго сказал

    Apache Benchmark - не лучший инструмент для измерения производительности HTTP-серверов на компьютерах с несколькими ядрами, кроме того, только 100 запросов с 20 одновременными подключениями - очень слабый тест, более реалистичным будет 1,000 или 10,000 запросов со 100 одновременными подключениями ( известно, что Nginx - одно из приложений, способных обслуживать более 10,000 запросов в секунду), и для этого лучше использовать такой инструмент, как weighttp, который разработан для команд с несколькими ядрами и использует epoll, который быстрее, в отличие от Apache Бенч, использующий один поток и менее эффективный механизм обработки событий.

    Подводя итог, предположим, что на сервере всего 4 ядра:

    weighttp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"

  6.   вера сказал

    Привет всем,
    При рисовании графика (из CSV) с помощью gnuplot возникает следующая ошибка. Подскажите, как ее решить?

    «Plot.p», строка 8: предупреждение: пропуск файла данных без допустимых точек

    построить «graph.csv» с использованием 9 гладких сбезиров с заголовком линий «AB - localhost / web»
    ^
    "Plot.p", строка 8: недопустимый диапазон x

    Могу ли я создавать HTML-страницы с помощью gnuplot?