Введение
ApacheBench (ab – фактическое имя файла программы) – это однопоточная командная строка, используемая для тестирования производительности HTTP-веб-серверов. Изначально она была разработана для тестирования Apache HTTP Server, но достаточно универсальна для тестирования любого веб-сервера, поддерживающего протоколы HTTP/1.0 или HTTP/1.1. Инструмент ab написан на языке C и поставляется в комплекте со стандартным дистрибутивом исходного кода Apache. Как и сам веб-сервер Apache, это бесплатное программное обеспечение с открытым исходным кодом, распространяемое на условиях лицензии Apache.
История
Оригинальная программа называлась zb "ZeusBench V1.0" и была написана Адамом Твисом (Zeus Technology) в 1996 году для тестирования производительности веб-сервера Zeus. Вскоре после этого Твисс передал лицензию (фактически пожертвовал) эту программу группе Apache, в результате чего производная программа была переименована в ab "ApacheBench". С 1997 и 1998 годов ab разрабатывалась и поддерживалась как вспомогательная программа, включенная в Apache HTTP-сервер, начиная с версии 1.0 (1997, 1998) и до версии 2.3 (2021) и далее.
Пример использования
ab n 10000 c 10 "http://localhost/index. html"
Это выполнит 10000 HTTP GET-запросов, обрабатывая до 10 запросов одновременно, к указанному URL-адресу, в данном примере http://localhost/index. html, что требует наличия работающего веб-сервера на порту 80 того же компьютера, на котором запускается ab. Более подробный пример вывода ab смотрите также в разделе "Вывод ab для настройки производительности Squid".
Конкуренция против нитей
Обратите внимание, что ApacheBench будет использовать только один поток операционной системы, независимо от уровня конкурентности (указанного параметром). В некоторых случаях, особенно при тестировании серверов с высокой пропускной способностью, один экземпляр ApacheBench сам по себе может стать узким местом. При использовании ApacheBench на оборудовании с несколькими процессорными ядрами, для более полной загрузки целевого URL можно использовать несколько экземпляров ApacheBench параллельно.
Определение ApacheBench
В строке User Agent ApacheBench, MAJOR и MINOR обозначают основные и второстепенные номера версии программы. Обычно анализаторы журналов веб-серверов, такие как Webalizer или AWStats, некорректно распознают эту строку, поэтому выполнение ApacheBench с большим количеством запросов может исказить результаты отчетов, создаваемых этими программами.