🍪 Można ciasteczko?

Ta strona chce wykorzystywać pliki cookie do analizowania ruchu oraz mierzenia skuteczności i personalizacji reklam zgodnie z polityką prywatności. Zgadzasz się?

PORADNIKI

7 min. czytania

ApacheBench: Testy wydajności stron WWW

ApacheBench

Fot. MM

ApacheBench – darmowe narzędzie do testów wydajności stron WWW i aplikacji internetowych. Zasada działania ApacheBench i instrukcja testów.

Spis treści
Serwer

Jeśli chcesz sprawdzić wydajność swojego serwera, ApacheBench może Ci się przydać. Potrzebujesz rzetelnego badania osiągów swojej strony internetowej? Tego typu usługi oferuje wiele firm i serwisów. Nie musisz jednak wydawać na to pieniędzy czy niepotrzebnie konsultować się ze specjalistami. Pierwszym – i skutecznym – krokiem może być skorzystanie z opisanego w tym artykule programu. Poniżej dokładnie wyjaśniliśmy, do czego może on Ci się przydać. Dowiesz się, jak odczytywać i zapisywać jego wyniki, a także wprowadzać potrzebne parametry.

ApacheBench – co to?

ApacheBench znany jest powszechnie jako „ab”. To prosty program, służący do przeprowadzania testów wydajnościowych. Sprawdza wydajność dowolnych serwerów HTTP, choć mimo nazwy nie jest skupiony wyłącznie na Apache. Używać go możesz na urządzeniach z różnymi systemami operacyjnymi. W niektórych przypadkach natomiast może być konieczne zainstalowanie odpowiedniego oprogramowania.

Jego obsługa skupia się na wpisywaniu odpowiednich komend w wierszu poleceń. Standardowo zawarty jest on w standardowej dystrybucji Apache. Rozpowszechniany jest też na warunkach Licencji Apache. Korzystanie z niego jest darmowe. Samo oprogramowanie ma natomiast otwarty kod źródłowy. Dzięki temu łatwo dostosujesz go do swoich wymagań.

ApacheBench – do czego służy?

Najogólniej mówiąc, ApacheBench służy do wykonywania testów obciążeniowych i wydajnościowych. Z jego pomocą możesz przetestować swoje serwery internetowe:

Testy wykonywane są bardzo szybko i nie muszą dotyczyć wyłącznie serwera lub strony, którą zarządzasz. Skierować je możesz także na inne witryny, których możliwości chcesz sprawdzić.

Co istotne natomiast, ApacheBench używa wyłącznie jednego wątku systemu operacyjnego. W przypadku serwerów opierających się na wielordzeniowych procesorach konieczne może być zatem korzystanie z dodatkowych instancji ab.

Instalacja ApacheBench

ApacheBench działa niezależnie od systemu, który masz wgrany na swój komputer. Oznacza to, że skorzystasz z niego zarówno na Windowsie, jak i Linuxie czy macOS. W dwóch pierwszych środowiskach niezbędne będzie natomiast zainstalowanie odpowiedniego oprogramowania. Na szczęście proces ten nie należy do skomplikowanych i zajmie Ci najwyżej krótką chwilę. Poniżej opisaliśmy wszystko krok po kroku.

Windows

Jeśli chcesz zainstalować ApacheBench na Windowsie, wejdź na stronę apachelounge.com/download/. Następnie znajdź tam najnowszą paczkę, odpowiednią dla Twojego urządzenia. Pobierz ją na swój komputer w formie pliku .zip.

Kolejnym krokiem jest wypakowanie zawartości. W środku powinny znajdować się dwa pliki:

  1. ab.exe,
  2. abs.exe.

Skopiuj je z katalogu „bin” do wybranego przez siebie folderu. Nic nie stoi na przeszkodzie, by umieścić je od razu w katalogu, jaki następnie dodasz do systemowej zmiennej PATH. W ten sposób będziesz mógł delikatnie skrócić zapis komend. Nie jest to natomiast działanie niezbędne.

Linux

Instalacja ApacheBench w Linux (na przykładzie Debian lub innych systemach na nim opartych np. Ubuntu) jest błyskawiczna. Wystarczy tylko, że otworzysz terminal za pomocą przycisków Ctrl + Alt + T. Jeśli chcesz wykonać testy ze zdalnego serwera, musisz wcześniej połączyć się przez SSH. Następnie wpisz w nim polecenie:

sudo apt-get install apache2-utils

Przed wydaniem tej komendy możesz dodatkowo umieścić też zapis:

sudo apt-get update

Dzięki temu będziesz mieć pewność, że dysponujesz najnowszą wersją oprogramowania.

macOS

W urządzeniach z macOS niezbędne oprogramowanie jest domyślnie zainstalowane od razu. Nie jest to typowy, dedykowany program ApacheBench. Skorzystać możesz natomiast w tym przypadku po prostu z wbudowanej aplikacji Terminal.

Aby ją uruchomić, naciśnij CMD + Spacja. Następnie wpisz „terminal.app” w oknie, które wyświetli się na środku ekranu. Tyle wystarczy, żebyś mógł wpisać polecenia niezbędne do przeprowadzenia testów ApacheBench.

ApacheBench – sposób użycia

Użycie ApacheBench ogranicza się do wprowadzenia odpowiedniej komendy. Najprostsza z możliwych zawierać może wyłącznie nazwę hosta lub adres URL, który chcesz sprawdzić.

ab https://jakwybrachosting.pl/

Pamiętaj, że adres musi być zakończony ukośnikiem. Jeśli o nim zapomnisz, wyświetli się komunikat o błędzie. To jednak tylko podstawowa składnia, która nie zapewni Ci zbyt wielu informacji. Przy jej użyciu dowiesz się jedynie, że wskazany serwer:

  • jest aktywny,
  • generuje poprawną odpowiedź.

Nie rozjaśni to natomiast sytuacji dotyczącej wydajności jego pracy. Do tego właśnie stworzona została możliwość dodawania do polecenia dodatkowych parametrów. Do najpopularniejszych z nich (i podstawowych) należą:

  • -n – pozwala określić liczbę żądań, które mają zostać wykonane podczas testu,
  • -c – pozwala określić, ile w jednym czasie powinno zostać uruchomionych wątków odpytujących serwer.

Ostrzeżenie! Masowe odpytywanie serwera przez programy takie jak ab mogą zostać odebrane jako próba ataku. Testuj w ten sposób wyłącznie strony WWW, serwery i hostingi, które należą do Ciebie!

Co zatem w praktyce sprawi komenda poniżej?

ab -n 100 -c 10 https://jakwybrachosting.pl/

Dzięki niej w jednym czasie wykonywanych będzie maksymalnie 10 żądań. Pobranie strony z adresu https://jakwybrachosting.pl nastąpi natomiast 100-krotnie. Wtedy też bardziej interesujący będzie raport z przeprowadzonego testu. W dalszej części artykułu dokładnie opiszemy, co znaczą poszczególne jego części.

Co się stanie, jeśli określisz całkowitą liczbę żądać na więcej niż 150 (parametr -n)? W takim przypadku, po każdych przeprowadzonych 100 akcjach, wysyłany będzie raport o postępach. W ten sposób na bieżąco orientować się będziesz za pomocą komunikatów, na jakim etapie testów jest system.

Jak odczytywać wyniki w ApacheBench?

Powyżej zademonstrowaliśmy wyniki testu przeprowadzonego na naszej witrynie https://jakwybrachosting.pl. Co jednak zawiera ten raport i w jaki sposób go odczytywać? Omówmy kolejne jego fragmenty. Dzięki temu będziesz wiedzieć, jakie informacje w ten sposób udało Ci się pozyskać. Kolejno jest to więc:

  • nazwa serwera,
  • wersja oprogramowania serwera,
  • nazwa hosta oraz port wykorzystany do nawiązania połączenia,
  • wielkość pobranego dokumentu (jeśli takie było polecenie),
  • liczba wykonanych w jednym momencie żądań (parametr -c),
  • czas, który był potrzebny na przeprowadzenie zleconego testu,
  • ilość żądań, które zakończyły się poprawnie,
  • ilość żądań, które zakończyły się niepowodzeniem,
  • liczba błędów zapisu,
  • całkowita liczba przesłanych bajtów,
  • liczba bajtów, z których składają się wyłącznie pobrane pliki,
  • średnia liczba żądań wykonanych w ciągu sekundy,
  • średni czas realizacji jednego żądania,
  • średni czas wykonania jednego zapytania, ale z uwzględnieniem tego, że zapytania wykonywane są w jednym czasie,
  • średni transfer (wyrażony w kilobajtach na sekundę).

W dalszej części raportu otrzymujesz tabelę zawierającą zestawienia czasów. Co istotne, są to:

  • minimalne wartości,
  • średnie arytmetyczne (z odchyleniami standardowymi),
  • mediany,
  • maksymalne wartości

dla:

  • Connect – czasu oczekiwania, potrzebnego do nawiązania połączenia z serwerem;
  • Processing – czasu od chwili nawiązania połączenia z serwerem do zakończenia pobierania dokumentu i zakończenia połączenia;
  • Waiting – czasu od zakończenia wysyłania żądania do serwera do odebrania pierwszych bajtów jego odpowiedzi (czas generowania odpowiedzi przez serwer);
  • Total – sumy parametrów Processing i Connect (od momentu rozpoczęcia nawiązywania połączenia, aż do jego zakończenia).

Ostatni fragment raportu to „Ilość żądań wykonanych w określonym czasie”. Mowa tu o czasie względem najdłuższego żądania. Otrzymujesz zatem informację, ile żądań trwało krócej lub tyle samo, a ile wynosi połowa czasu najdłuższego żądania. Następnie wartość ta podawana jest dla 66%, 75%, 80% i 90% czasu najdłuższego żądania.

Najważniejsze parametry w ApacheBench

ApacheBench możesz bardzo łatwo dostosować do swoich potrzeb. Zrobisz to za pomocą odpowiednich przełączników. Skorzystanie z nich polega jedynie na wstawieniu ich do podstawowej komendy. Jest ich bardzo wiele, poniżej więc prezentujemy tylko najważniejsze i najczęściej wykorzystywane:

  • -A przykladowa-nazwa-uzytkownika:przykladowe-haslo – wprowadzone dane logowania wysyłane są do serwera. Pozwoli Ci to bezpośrednio się na nim zalogować, o ile wspiera on podstawowy BASIC Authentication (zabezpieczenie hasłem przez .htpasswd);
  • -C nazwa=wartość – pozwala na dodanie cookie do wysyłanych nagłówków HTTP;
  • -h – pozwala wyświetlić krótki opis i parametry programu;
  • -i – pozwala na wysłanie do serwera żądania HEAD zamiast GET;
  • -P login:hasło – wysyła dane logowania do serwera proxy, pośredniczącego w połączeniu z serwerem WWW;
  • -V – wyświetla numer wersji programu ApacheBench.

Żądania POST i PUT

Interesuje Cię wykonanie żądania POST lub PUT? Wymaga to wprowadzenia odpowiednich przełączników. Na końcu komend dodać też możesz -l. Dzięki temu ApacheBench będzie wiedział, że zwracany dokument może mieć zmienną długość. To przydatne rozwiązanie w przypadku testowania dynamicznych stron o zmiennym contencie.

W przypadku żądania POST użyj przełącznika -p. Taka komenda może wyglądać następująco:

ab -p -n 100 -c 10 -l https://jakwybrachosting.pl/

W przypadku żądania PUT użyj przełącznika -u. Taka komenda może wyglądać następująco:

ab -u -n 100 -c 10 -l https://jakwybrachosting.pl/

Jak zapisać wyniki ApacheBench do pliku CSV?

Potrzebujesz przeprowadzić testy dla klienta lub zapisach ich wyniki w innym celu? Bez większego problemu zapiszesz je na swoim dysku w postaci pliku .csv. Wystarczy tylko zmodyfikować komendę poprzez wprowadzenie odpowiedniego fragmentu. W arkuszu poleceń może to wyglądać np. tak:

ab -e result.csv -n 100 -c 10 https://jakwybrachosting.pl/

Przeczytaj też: Jak przetestować hosting? Sprawdź szybkość i wydajność hostingu, Test szybkości ładowania strony WWW: 5 narzędzi i Jak przyspieszyć stronę WWW? Optymalizacja szybkości strony