ApacheBench
ApacheBench (ab) — однопоточная консольная компьютерная программа для нагрузочного тестирования (измерения производительности) веб-серверов по протоколу HTTP[1]. Изначально разрабатывалась для тестирования Apache HTTP Server, но является универсальным инструментом и может использоваться для проверки любого веб-сервера, поддерживающего протоколы HTTP/1.0 или HTTP/1.1.
Инструмент ab написан на языке Си, входит в стандартный исходный пакет Apache и, как и сам веб-сервер Apache, распространяется свободно как открытое программное обеспечение на условиях лицензии Apache.
История
Изначально программа называлась zb («ZeusBench V1.0») и была написана Адамом Твиссом (компания Zeus Technology) в 1996 году для измерения производительности Zeus Web Server. Вскоре после этого Твисс передал (пожертвовал) программу группе Apache, после чего она была переименована в ab («ApacheBench»).
Начиная с 1997—1998 годов ab развивается и поддерживается как вспомогательная программа внутри состава Apache HTTP Server: от версии 1.0 (1997/1998) до по крайней мере 2.3 (2021 год) и далее[2].
Одновременность и потоки
Необходимо учитывать, что ApacheBench использует только один поток операционной системы независимо от значения параметра -c, определяющего уровень одновременности. В некоторых случаях, особенно при тестировании серверов с большой производительностью, одним из узких мест становится уже сама программа ApacheBench. На многопроцессорных системах для большего насыщения тестируемого сервера рекомендуется запускать несколько экземпляров ApacheBench параллельно.
Обнаружение ApacheBench
User-Agent строка, используемая ApacheBench, имеет вид ApacheBench/МАЖОР.МИНОР, где МАЖОР и МИНОР — основные и дополнительные номера версии программы[3]. Во многих случаях веб-аналитики, такие как Webalizer или AWStats, неправильно определяют трафик, сгенерированный ApacheBench, поэтому результаты их отчётов могут искажаться при проведении массовых тестов.