ab - утилита проверки производительности Apache, Nginx, LSWS

ab - утилита проверки производительности Веб серверов, например Apache, Nginx, LiteSpeed Web Server (LSWS). В последних версиях ab поддерживает https протокол. ab устанавливается вместе с сервером Apache.

Примеры использование Apache Bench для тестирования нагрузки на веб-сервер.

  • Пример 1:
    # ab -c7 -n200 http://example.com/index.php

Где

  • -с7 - количество одновременных(конкурирующих) запросов к Веб серверу;
  • -n200 - общее количество запросов в тесте;
  • Пример использования:
    ab -n 100 -c 10 -t 5 http://examle.com/

    При таком запуске apache bench, будут выполняться 100 запросов, параллельно будут работать 10 запросов. 5 секунд - ограничение по времени на все запросы, те из них которые не отработают в течении этого времени выполнены не будут.

Ниже представлен список поддерживаемых опций ab, изучите их

-n requests     количество запросов страницы.
-c concurrency  количество конкурентных запросов.
-t timelimit    максимальное время теста                  
-s timeout      максимальное время на один запрос. По умолчанию 30 секунд.
-b windowsize   размер TCP буфера в байтах
-B address      адрес для исходящих подключений
-p postfile     Файл, содержащий данные для POST. Не забудьте также установить -T
-u putfile      Файл, содержащий данные для PUT. Не забудьте также установить -T
-T content-type HTTP заголовок для методов POST/PUT. По умолчанию text/plain
-w              Вывести результат в виде HTML.
-C attribute    Добавить cookie, например  'Apache=1234'
-H attribute    добавить произвольную строку заголовка, например 'Accept-Encoding: gzip'
-A attribute    Использовать Basic WWW Authentication, например -A user pass
-P attribute    Использовать аутентификацию на Proxy, например -P proxyuser proxypass
-X proxy:port   Указать Proxy сервер
-V              Отобразить версию ab
-k              Использовать KeepAlive
-l              Разрешить изменяемую длину документа. Используйте для динамических страниц.
-g filename     Сохранить результат в формате gnuplot.
-e filename     Сохранить результат в CSV.
-r              Не прекращать тест при ошибках передачи.
-h              Отобразить справку
-f protocol     Указать протокол. (SSL3, TLS1, TLS1.1, TLS1.2 или ALL)

Предположим, вы хотите одновременно протестировать несколько URL-адресов? Для этого создайте сценарий оболочки с несколькими вызовами ab. В конце каждой строки поместите &, это заставит команду работать в фоновом режиме и позволит начать выполнение следующей команды. Также давайте перенаправим вывод в файл для каждого URL-адреса, используя перенаправление. Например:

#!/bin/sh
 
ab -n 100 -c 10 https://dieg.info/ > test1.txt &
ab -n 100 -c 10 https://wow2.top/ > test2.txt &

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

socket: Too many open files

настройте переменную ядра ulimit управление ресурсами системы операционной системы, например так

ulimit -n 10240
Skyeng