ApacheBench
ApacheBench ( ab
to rzeczywista nazwa pliku programu ) to jednowątkowy program komputerowy wiersza poleceń używany do testowania (pomiaru wydajności) serwerów WWW HTTP . Pierwotnie był używany do testowania serwera HTTP Apache , ale jest wystarczająco ogólny, aby przetestować dowolny serwer WWW obsługujący wersje protokołu HTTP/1.0 lub HTTP/1.1.
Narzędzie ab
jest napisane w C i jest dostarczane w pakiecie ze standardową dystrybucją źródeł Apache i podobnie jak sam serwer WWW Apache jest darmowym oprogramowaniem typu open source i rozpowszechniane na warunkach licencji Apache .
Historia
Oryginalny program został nazwany zb
„ZeusBench V1.0” i został napisany przez Adama Twissa ( Zeus Technology ) w 1996 roku w celu przetestowania wydajności Zeus Web Server . Wkrótce potem Twiss udzielił licencji (podarował) ten program grupie Apache , tak że nazwa programu pochodnego została zmieniona na
„ApacheBench”.
Od 1997, 1998 ab
jest dalej rozwijany i utrzymywany, jako program pomocniczy zawarty w serwerze Apache HTTP, od wersji 1.0 (1997,1998) do wersji 2.3 (2021) i późniejszych.
Fragment komentarzy dotyczących przypisań praw autorskich znalezionych w kodzie źródłowym programu ab
.
/* ** Ten program jest oparty na ZeusBench V1.0 napisanym przez Adama Twissa **, który jest chroniony prawami autorskimi (c) 1996 przez Zeus Technology Ltd. http://www.zeustech.net/ . . . ** */ /* ** HISTORIA: ** - Pierwotnie napisana przez Adama Twissa , marzec 1996 ** przy udziale Mike'a Belshe'a i ** Michaela Campanelli ** - Udoskonalone przez Deana Gaudeta , listopad 1997 ** - Oczyszczone przez Ralfa S. Engelschalla , marzec 1998 ** - POST i gadatliwość autorstwa Kurta Sussmana , sierpień 1998 ** - Dane wyjściowe tabeli w formacie HTML dodane przez Davida N. Weltona , styczeń 1999 ** - Dodano obsługę plików cookie, arbitralnych nagłówków i autoryzacji. , kwiecień 1999 ** Wersja 1.3d . . . ** Wersja 2.3. . . **/
Przykład użycia
ab -n 10000 -c 10 "http://localhost/index.html"
Spowoduje to wykonanie 10000 żądań HTTP GET , przetwarzających jednocześnie do 10 żądań, do określonego adresu URL , w tym przykładzie http://localhost/index.html
, który wymaga, aby serwer WWW działał na porcie 80 tego samego komputera, na którym ab prowadzony jest.
Aby zapoznać się z rozszerzonym przykładem wyjścia ab
, zobacz także wyjście ab dla dostrajania wydajności Squida .
Współbieżność a wątki
Należy zauważyć, że ApacheBench użyje tylko jednego wątku systemu operacyjnego , niezależnie od poziomu współbieżności (określonego przez parametr -c ). W niektórych przypadkach, zwłaszcza podczas testów porównawczych serwerów o dużej pojemności , pojedyncza instancja ApacheBench sama w sobie może być wąskim gardłem. W przypadku korzystania z ApacheBench na sprzęcie z wieloma rdzeniami procesora dodatkowe instancje ApacheBench mogą być używane równolegle w celu pełniejszego nasycenia docelowego adresu URL.
Wykrywanie ApacheBencha
agenta użytkownika ApacheBench to ApacheBench/MAJOR.MINOR , gdzie MAJOR i MINOR reprezentują główne i pomocnicze numery wersji programu. Zwykle nie jest poprawnie kategoryzowane przez analizatory dzienników serwerów WWW, takie jak Webalizer lub AWStats , więc uruchamianie ApacheBench z dużą liczbą żądań może zniekształcić wyniki raportów generowanych przez te programy.