Сайт: https://httpd.apache.org/docs/2.4/programs/ab.html.
Apachebench ( ab
) — это приложение командной строки для скамейки маркировки вашего веб-приложения. Первоначально он был разработан для проверки HTTP HTTP Apache, но он не ограничен его — вы можете использовать инструмент для проверки любого веб-сервера.
Установка
Apachebench ( ab
) в комплекте в Apache2-Utils
упаковка. Вы можете установить его на платформах Debian/Ubuntu с apt-get install-y apache2-utils
. Если вы находитесь в системе MacOS, AB
Уже установлен, потому что MacOS Ships с HTTP Apache HTTP.
использование
Предположим, мы хотим увидеть, как быстро example.com
Может обрабатывать 100 запросов ( -N 100
), максимум 10 запросов ( -C 10
) работает одновременно.
ab -n 100 -c 10 https://example.com/
Apachebench ( ab
) затем генерирует следующий выход:
Server Software: ECS Server Hostname: example.com Server Port: 443 SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES128-GCM-SHA256,2048,128 Server Temp Key: ECDH P-256 256 bits TLS Server Name: example.com Document Path: / Document Length: 1256 bytes Concurrency Level: 10 Time taken for tests: 4.990 seconds Complete requests: 100 Failed requests: 0 Total transferred: 160293 bytes HTML transferred: 125600 bytes Requests per second: 20.04 [#/sec] (mean) Time per request: 499.031 [ms] (mean) Time per request: 49.903 [ms] (mean, across all concurrent requests) Transfer rate: 31.37 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 309 339 18.4 338 383 Processing: 100 108 6.3 106 129 Waiting: 99 106 6.2 104 124 Total: 410 447 22.1 446 511 Percentage of the requests served within a certain time (ms) 50% 446 66% 453 75% 459 80% 463 90% 479 95% 488 98% 505 99% 511 100% 511 (longest request)
Вы можете получить некоторую действительно полезную информацию от нее.
Complete requests: 100 Failed requests: 0
Эти две строки говорят нам, что не один запрос не удался. Что на самом деле означает, что ваша настройка способна служить этому объему запросов.
Requests per second: 20.04 [#/sec] (mean) Time per request: 499.031 [ms] (mean) Time per request: 49.903 [ms] (mean, across all concurrent requests)
Эта часть дает нам информацию о количестве запросов в секунду, ваша заявка смогла выполнить.
Запросы в секунду Дает вам представление о том, насколько хорошо ваше веб-приложение выполняет. Чем больше число, тем лучше производительность.
Время на запрос (среднее) Рассказывает вам среднее количество времени, которое потребовалось для Одновременная группа запросов на процесс (поэтому в нашем случае 10 запросов заняли 499,031 мс).
Время на запрос (значит, во всех параллельных запросах) Рассказывает вам среднее количество времени, которое потребовалось для Один запрос обрабатывать.
Connection Times (ms) min mean[+/-sd] median max Connect: 309 339 18.4 338 383 Processing: 100 108 6.3 106 129 Waiting: 99 106 6.2 104 124 Total: 410 447 22.1 446 511
Эти цифры показывают вам разбивку компонента каждого запроса.
Соединить Дает вам информацию о том времени, которое потребовалось для установления соединения с вашим сервером (что наиболее типично задержка сети).
Обработка Время — это общее количество времени, которое веб-приложение предприняло процесс и отправить полный ответ.
Ожидание это время к первому байту после отправки запроса.
Альтернативы Apachebench (AB)
Apache Jmeter : Apache Jmeter — это приложение на основе Java для анализа и измерения производительности веб-приложений. В отличие от Apachebench, jmeter имеет GUI для создания сценариев тестирования нагрузки. JMeter поддерживает переменную параметризацию, утверждения (проверка ответа), плагины, переменные конфигурации и генерации отчетов. Помимо устаревшего GUI, JMeter находится в любом случае очень хороший (и бесплатный) инструмент для создания сложных сценариев тестирования нагрузки.
loadtest : LoadTest — это простое в использовании, Node.js на основе альтернативы Apachebench (AB).
Hightp : HoveTP — это легкий и небольшой бенчмаркинг инструмент для веб-серверов. Я никогда не использовал это, хотя.
артиллерия : Artillery — это инструментарий на основе нагрузки на основе Node.js. Артиллерия позволяет вам проверить http, socket.io, websockets и aws kinesis. Вы также можете эмулировать сложное поведение пользователя. Существует также платная версия для запуска распределенных нагрузочных испытаний. К сожалению, я не могу дать вам дополнительную информацию или идеи, потому что я еще не использовал артиллерию.
Вывод
Я надеюсь, что вы найдете эту статью полезную, и вы даете Apachebench (AB). На мой взгляд, это отличный инструмент для быстрого нагрузки тестирования вашего веб-приложения. Если вы знаете, как его использовать, вы получаете полезные результаты и метрики на то, как выполняет ваше веб-приложение.
Если вам нравится мой контент, вы можете следовать за мной в Twitter?! @fullstack_to.
Оригинал: «https://dev.to/matthias/useful-tools-apachebench-ab-2lmo»