AB — это сокращение от ApacheBench.
Команда ab создаёт несколько одновременных потоков доступа, чтобы имитировать одновременное обращение нескольких посетителей к URL-адресу. Его тестовые цели основаны на URL, поэтому он может использоваться для тестирования как нагрузки apache, так и других стрессов веб-серверов, таких как nginx, lighthttp, tomcat, IIS и др.
Команда ab требует низких требований к компьютеру, который выдает нагрузку, и не занимает много CPU или памяти. Однако это создаёт огромную нагрузку на целевой сервер, и его принцип похож на CC-атаки. Также нужно внимательно проверять и использовать его самостоятельно, иначе нагрузка будет слишком большой за раз. Это может привести к исчерпанию ресурсов целевого сервера, а в тяжёлых случаях даже вызвать сбой.
1. Введение в Apache Bench
ApacheBench — это инструмент для веб-стресс-тестирования, который поставляется с серверами Apache, сокращённо ab. AB также является инструментом командной строки с низкими нативными требованиями для инициации полезных нагрузок, и множество параллельных потоков доступа могут быть созданы по команде AB, имитируя одновременное обращение нескольких посетителей к определённому URL-адресу, чтобы использовать его для проверки нагрузки на целевой сервер. В целом, инструмент AB небольшой и простой, быстро освоивается и может предоставить базовые показатели производительности, но графических результатов нет, и его невозможно контролировать.
2. Установка Apache Bench
Сначала нужно установить сервер Apache, скачать адрес:Вход по гиперссылке виден.,
Мой компьютер — это Windows 10 64-битная система, поэтому я скачал "httpd-2.4.33-win64-VC15.zip", ссылка:Вход по гиперссылке виден.
Рекомендуется скачать последнюю версию, так как старые версии ab не поддерживают параметр -r.
3. Использование Apache Bench
Понимайте параметры
Описание параметра: Формат: ab [options] [http://]hostname[:p ort]/path
-n запросов Количество запросов для выполнения //Общее количество запросов, инициированных в этом тесте -c Количество множественных запросов // Количество запросов (или параллелизма), сгенерированных одновременно -t лимит времени Секунды до максимума. Ожидание ответов //Максимальное количество секунд, за которое тест выполняется по умолчанию. -r Не выходите на сокет, ошибки приема. Бросьте исключение, чтобы продолжить тестовую задачу -p postfile Файл, содержащий данные в POST // Файл, содержащий данные, которые должны быть POST, в формате "p1=1&p2=2". Метод использования — -p 111.txt
-T content-type заголовок Content-type для POSTing Заголовок типа Content, используемый для данных POST, например -T "application/x-www-form-urlencoded". (co-p) -v многословность Сколько информации для устранения неполадок нужно печатать Установьте уровень детализации для отображения информации — значение 4 или больше покажет информацию о заголовке, значение 3 или больше — код ответа (404, 200 и т.д.), а значение 2 или больше — предупреждения и другую информацию. -V отображает номер версии и выход. -C атрибут Добавить cookie, например. -C "c1=1234,c2=2,c3=3" (повторяется) -C cookie-name=value Добавить куки в строку request: Типичная форма — пара параметров name=value. Этот параметр можно повторить, деля на запятую. Совет: Вы можете использовать принцип реализации сессии для передачи параметра JSESSIONID для выполнения функции поддержания сессии, например, -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Распечатать результаты в HTML-таблицах // Вывод результатов в формате HTML-таблицы. По умолчанию это таблица с двумя столбцами шириной на белом фоне. -Я использую HEAD вместо GET -x атрибуты Строка для вставки в качестве атрибутов таблицы -y атрибуты Строка вставляется как атрибуты tr -z приписывает строку для вставки как атрибуты td или th -H атрибут Добавить произвольную строку заголовка, например. 'Accept-Encoding: gzip' Вставляется после всех обычных строк заголовка. (повторяется) -A атрибут Добавить базовую WWW-аутентификацию, атрибуты это имя пользователя и пароль, разделённые двоеточием. -P атрибут Добавить базовую аутентификацию прокси, атрибуты — это имя пользователя и пароль, разделённые двоеточием. -X прокси:порт Проксисервер и номер порта для использования -V Печать версия и выход -k Использовать функцию HTTP KeepAlive -d Не показывать процентиль, обслуживаемые за столом. -S Не показывают оценки уверенности и предупреждения. -g Имя файла -g Вывод собранных данных в файл формата gnuplot. -e имя файла Вывод CSV-файла с представленными процентами -h Отобразить информацию об использовании (это сообщение) Существует множество параметров, обычно можно использовать параметры -c и -n. Например:
Распакуйте «httpd-2.4.33-win64-VC15.zip», перейдите в \Apache24\bin и начните с командной строки cmd, как показано на рисунке ниже:
SSL не скомпилирован; нет поддержки https: SSL не компилируется в; Поддержки https нет, а значит, сайт не поддерживает https.
Результаты тестов:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL не скомпилирован; Нет поддержки HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Это ApacheBench, версия 2.3 <$Revision: 1826891 $> Авторские права 1996 Адам Твисс, Zeus Technology Ltd,Вход по гиперссылке виден. Лицензировано Фондом программного обеспечения Apache,Вход по гиперссылке виден.
Бенчмаркингwww.itsvse.com(будь терпелив) Выполнено 100 запросов Выполнено 200 запросов Выполнено 300 запросов Выполнено 400 запросов Выполнено 500 запросов Выполнено 600 запросов Выполнено 700 запросов Выполнено 800 запросов Выполнено 900 запросов Выполнено 1000 запросов Выполнено 1000 запросов
Серверное программное обеспечение: Имя хоста сервера: www.itsvse.com Порт сервера: 80
Путь к документу: / Длина документа: 178 байт
Уровень совместности: 10 Время проведения тестов: 44,916 секунды Общее количество запросов: 1000 Неудачные запросы: 0 Отклики без 2xx: 1000 Всего переданных: 349000 байт Передано HTML: 178000 байт Запросы в секунду: 22,26 [#/сек] (среднее) Время на запрос: 449.164 [мс] (среднее) Время на запрос: 44,916 [мс] (в среднем по всем одновременным запросам) Скорость передачи: 7,59 [Кбайт/сек] приёма
Время подключения (ms) Минимальное среднее[+/-sd] медианное максимум
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Процент от запросов, отработанных в течение определённого времени (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (самый длинный запрос) Анализ параметров:
Путь к документу: Тестовая страница Длина документа: размер страницы Уровень параллелизма: количество параллельных испытаний одновременно Время, потраченное на проведение тестов: продолжительность всего теста Полные запросы: количество выполненных запросов Неудачные запросы: количество неудачных запросов Ошибки записи: 0 Общее количество переданных: количество переданных сетей в течение процесса Перенесённый HTML: Количество HTML-контента, передаваемого в процессе Запросы в секунду: одна из самых важных метрик, эквивалентная транзакциям в секунду в LR, и среднее в скобках указывает на то, что это среднее значение Время на запрос: Два самых важных показателя, эквивалентные среднему времени ответа на транзакцию в LR, в скобках указывают на среднее значение Время на запрос: Среднее время выполнения каждого запроса на соединение Скорость передачи: средний трафик в секунду в сети, что помогает исключить проблему избытка сетевого трафика, вызывающего длительное время отклика
|