Рубрики
Uncategorized

Полезные инструменты: Apachebench (AB)

Веб-сайт: https://httpd.apache.org/docs/2.4/programs/ab.html Apachebench (AB) — это командная строка Appli … Теги с производительностью, WebDev, DevOps, Linux.

Сайт: 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»