В статье будет рассмотрено кратко популярные бенчмарки. Так же рекомендую прочесть стать о то, как правильно тестировать нагрузку.
ab (http://httpd.apache.org/docs/2.4/programs/ab.html) – это утилита для тестирования производительности вашего веб-сервера Apache. Она создана для того, чтобы вы могли определить производительность вашей текущей настройки Apache. В первую очередь, AB показывает сколько запросов в секунду ваш Apache способен обслужить.
Этот пакет содержит полезные утилиты для веб-серверов:
- ab – Apache benchmark tool,
- logresolve – разрешает IP-адреса в имена хостов в логах,
- htpasswd – производит действия над файлами базовой аутентификации,
- htdigest – действия над аутентификационными файлами в формате digest,
- dbmmanage – то же для файлов с аутентификационными данными в формате DBM, использует perl,
- htdbm – то же, что и утилита выше, но использует APR,
- rotatelogs – периодически прекращает запись в лог-файл и создает новый,
- split-logfile – делит единый лог-файл, включая множество виртуальных хостов,
- checkgid – проверяет может ли вызывающий установить gid на определенную группу,
- check_forensic – извлекает вывод mod_log_forensic из лог-файлов Apache.
Siege (http://freecode.com/projects/siege) – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.
webpagetest – это вебсайт (http://www.webpagetest.org/) для тестирования вашего сайта. Позволяет выявить слабые места, проанализировать вывод и многое другое.
httperf (http://www.hpl.hp.com/research/linux/httperf/) – это утилита, которая выдает рабочую нагрузку для тестирования http-серверов. Она работает с HTTP/1.0 и HTTP/1.1, а если понадобится, то и с SSL. Он пытается посылать непрерывный поток запросов с заданной скоростью, независимо сдох сервер или еще жив. Такое поведение показывает не только максимальную нагрузку, которую может выдержать ваш сервер, но и его поведение, когда он перегружен. То есть можно посмотреть на поведение сервера, когда к нему сыпятся запросы, когда он сам уже не может отвечать.
wrk (https://github.com/wg/wrk) – a HTTP benchmarking tool
wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines a multithreaded design with scalable event notification systems such as epoll and kqueue.
An optional LuaJIT script can perform HTTP request generation, response processing, and custom reporting. Several example scripts are located in scripts/
Tsung (http://tsung.erlang-projects.org/) — это распределенная система нагрузочного тестирования, написанная на Erlang’е. Заявлена поддержка HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and XMPP/Jabber. В этой статье я опишу как протестировать обычный web сайт на нагрузку.
weighttp (https://github.com/lighttpd/weighttp) – легковесный пакет для тестирования web-серверов
http_load (https://acme.com/software/http_load/) – http_load runs multiple http fetches in parallel, to test the throughput of a web server. However unlike most such test clients, it runs in a single process, so it doesn’t bog down the client machine. It can be configured to do https fetches as well.
You give it a file containing a list of URLs that may be fetched, a flag specifying how to start connections (either by rate or by number of simulated users), and a flag specifying when to quit (either after a given number of fetches or a given elapsed time). There are also optional flags for checksums, throttling, random jitter, and progress reports.