ab (Apache Bench) - утилита проверки производительности Apache, Nginx, LSWS
ab (Apache Bench) - утилита проверки производительности Веб серверов, например Apache, Nginx, LiteSpeed Web Server (LSWS). В последних версиях ab поддерживает https протокол. Документация ab - Apache HTTP server benchmarking tool. ab устанавливается вместе с сервером Apache, например, для Ubuntu вы можете установить его с помощью команды
apt install apache2-utils
Apache Bench (ab) пригодится для быстрой и грубой оценки производительности веб-сервера, так что если нужно получить более приближенные к реальности данные, придется воспользоваться дополнительными утилитами Оптимизация Веб-Сайта нагрузочное тестирование при помощи httpstat, ab, Httperf, Tsung.
Пример 1. Проверка максимального количества запросов
Утилита ab подходит как для простого, так и продвинутого тестирования. Проверка максимального количества запросов с TLS:
ab -c 50 -n 10000 -f TLS1.2 -H "Accept-Encoding: gzip,deflate" https://somesite.com/
Команда выполнила 10 000 запросов в 50 потоков и показала скорость и обработанное количество запросов:
Total transferred: 59560000 bytes HTML transferred: 52160000 bytes Requests per second: 816.77 [#/sec] (mean) Time per request: 122.434 [ms] (mean) Time per request: 2.449 [ms] (mean, across all concurrent requests) Transfer rate: 2375.33 [Kbytes/sec] received
Из этого отчета самыми важными данными будут:
- Requests per second — количество запросов в секунду. К примеру если страница состоит из 20 частей (CSS, картинки и HTML), то в нашем примере сервер способен обработать около 40 одновременных пользователей в секунду.
- Time per request (mean) — среднее время на выполнение группы параллельных запросов (в нашем случае 50);
- Time per request (mean, across all concurrent requests) — среднее время на выполнение одного запроса.
Пример 2. Тестирование нагрузки на веб-сервер
Примеры использование Apache Bench для тестирования нагрузки на веб-сервер.
- Пример 1:
ab -c7 -n200 http://example.com/index.php или со * ab -n 100 -c 20 https://example.com/*
Где
- -с7 - количество одновременных(конкурирующих) запросов к Веб серверу;
- -n200 - общее количество запросов в тесте;
- Пример использования:
ab -n 100 -c 10 -t 5 http://examle.com/
При таком запуске apache bench, будут выполняться 100 запросов, параллельно будут работать 10 запросов. 5 секунд - ограничение по времени на все запросы, те из них которые не отработают в течении этого времени выполнены не будут.
Пример 3. Проверить что сайт выдерживает 5000 посетителей в сутки
Чтобы проверить, выдерживает ли ваш сайт 5000 посетителей в сутки с помощью утилиты Apache Bench (ab), вам нужно запустить
ab -n 5000 -c 100 -k URL_вашего_сайта
- -n 5000 указывает Apache Bench на количество запросов, которые необходимо выполнить (в данном случае 5000).
- -c 100 определяет количество одновременных соединений (посетителей), которые будут созданы одновременно..
- -k это флаг KeepAlive, который позволяет использовать одно соединение для нескольких запросов, что может быть полезно в реальных сценариях использования.
После завершения теста вы получите результаты, включая скорость запросов, количество успешных и неуспешных запросов, среднее время ответа и т.д. Если результаты соответствуют вашим ожиданиям и сайт успешно обрабатывает 5000 запросов в сутки, то ваш сайт прошел проверку.
Обратите внимание, что результаты тестирования могут быть влиянии как настройками вашего сервера, так и сетевыми условиями, поэтому рекомендуется провести несколько тестов в разное время суток для получения более надежных результатов.
Опции запуска Apache Bench (ab)
Ниже представлен список поддерживаемых опций 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)
FAQ 1. Как при помощи ab benchmarking тестировать нескольких URL
Предположим, вы хотите одновременно протестировать несколько 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 &
FAQ 2. Протестировать работу вашего кода PHP под нагрузкой
Если вы хотите просто протестировать работу вашего PHP, достаточно создать файл с содержанием и запустить на него тест. Если при наращивании конкурентных запросов вы получаете ошибку
socket: Too many open files
настройте переменную ядра Руководство по использованию команды ulimit в Linux: Настройка ограничений системных ресурсов, например так
ulimit -n 10240
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах