Jak porównywać Webserver z ławką Apache

Jak porównywać Webserver z ławką Apache

Apache Bench to narzędzie używane do pomiaru wydajności serwera internetowego. Pomimo „Apache” w nazwie, można go użyć do testowania dowolnego rodzaju serwera WWW. W tym samouczku omówimy kroki, aby użyć ławki Apache i jak interpretować swój raport na temat wydajności serwera WWW.

Apache Bench działa poprzez wysyłanie różnych żądań HTTP na serwer WWW i rejestrowanie czasów odpowiedzi. Może powiedzieć, ile zatorów może obsłużyć serwer, zanim zostanie przytłoczony, a wydajność maleje.

W tym samouczku nauczysz się:

  • Jak zainstalować ławkę Apache
  • Jak używać ławki Apache
  • Jak interpretować wyniki ławki Apache
Jak porównywać Webserver z ławką Apache

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Dowolna dystrybucja GNU/Linux
Oprogramowanie Ab
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Jak zainstalować ławkę Apache

Apache Bench jest częścią pakietu Apache2-Utils, który można zainstalować za pomocą menedżera pakietów systemu.
W przypadku Ubuntu i innych dystrybucji opartych na debian użyj polecenia apt-get, aby je zainstalować:

$ sudo apt-get instaluj Apache2-Utils 

Dla Centos/Rhel wykonuje:

# DNF Zainstaluj httpd-tools 


Jak używać ławki Apache

Użyj ławki Apache z poleceniem AB. Najbardziej podstawowa składnia to:

$ ab HostName/ 
NOTATKA
Ab Wymaga cięcia na nazwę hosta/adresu IP.

To podstawowe polecenie nie jest szczególnie przydatne bez żadnych dodatkowych opcji, więc dołączmy niektóre. Apache Bench ma wiele dostępnych opcji, ale niektóre z najbardziej przydatnych to:

  • -n (numer): Używany do określenia liczby żądań AB powinien wysłać do Apache
  • -T (limit czasu): używany do określania (w sekundach), jak długo AB powinien kontynuować wysyłanie żądań
  • -C (współbieżne): Służy do określenia liczby jednoczesnych żądań AB do składania

Możesz bawić się tymi opcjami, aby symulować bardziej realistyczny ruch dla swojego serwera WWW i obserwować, jak działa pod różnymi ilościami stresu.

$ ab -t 10 -n 10000 -C 100 nazwa hosta/ 

To polecenie będzie porównywać nasz serwer WWW na 10 sekund, wysyłając maksymalnie 10 000 żądań i wyśle ​​100 tych żądań.

Rozważania

Podczas korzystania z ławki Apache należy wziąć pod uwagę kilka rzeczy. Kiedy serwer odbiera tysiące żądań HTTP z jednego źródła w ciągu kilku sekund, wiele zapory zinterpretuje to jako atak odmowy usługi i próbuje zablokować powtarzane połączenia przez chwilę.

Zalecalibyśmy tylko użycie ławki Apache w sieci lokalnej i testowanie kontroli hostów, które kontrolujesz. Mimo to nie jest to idealna symulacja rzeczywistego ruchu.

Podczas łączenia się z serwerem WWW gdzieś na świecie użytkownicy będą mieli różne poziomy opóźnień i chmiel (Trasa ich połączenie odbywa się do serwera WWW), które odgrywają główną rolę w postrzeganej prędkości Twojej witryny.
Ponadto Twoja maszyna testowa (system, z którego uruchamiasz polecenie AB) może być wąskim gardłem. Jeśli podejrzewasz, że Twój system nie ma zasobów wymaganych do zainicjowania tej dużej liczby połączeń, możesz zweryfikować za pomocą polecenia TOP do monitorowania zużycia procesora i pamięci, podczas gdy AB wykonuje swój test.

Jeśli dostaniesz Przekroczono limit czasu połączenia Błąd, twoje połączenia prawdopodobnie zostały zablokowane przez zaporę lub serwer Apache został przytłoczony i nie był w stanie obsługiwać dalszych żądań.

Wyniki testu na ławce Apache

Kiedy ławka Apache zakończy test, wyświetli wyniki do terminala i powinien wyglądać mniej więcej tak:

Zakończone 882 żądania oprogramowania serwera: Apache/2.4.29 Nazwa hosta serwera: --- Port serwerowy: 80 Ścieżka dokumentu: / Długość dokumentu: 4878 Bajty Poziom współbieżności: 100 czasu na testy: 10.008 sekundy Pełne żądania: 882 Nieudane żądania: 0 Całkowity przeniesienie: 4480560 BYTES HTML Przeniesione: 4302396 Bajty żądania na sekundę: 88.13 [#/s] (średni) Czas na żądanie: 1134.700 [MS] (średni) Czas na żądanie: 11.347 [MS] (średnia, we wszystkich współbieżnych żądaniach) Szybkość transferu: 437.20 [KBYTES/SEC] Otrzymane czasy połączenia (MS) Min Średnia [+/- SD] Mediana Max Connect: 77 327 1008.3 89 7240 Przetwarzanie: 87 115 43.4 101 807 Oczekiwanie: 86 112 39.1 100 604 Razem: 168 442 1009.1 192 7373 Procent wniosków podanych w określonym czasie (MS) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (najdłuższy żądanie) 


Interpretacja wyników ławki Apache

Powyższe wyjście zawiera wszystkie niezbędne informacje; Musisz tylko wiedzieć, co oznaczają te różne wskaźniki, aby zrozumieć wyniki. Przejdziemy je wszystkie w tej sekcji.

Wyniki testu na ławce Apache

Pierwsze kilka wierszy po prostu podaje ogólne informacje o serwerze WWW. Pomocne informacje naprawdę zaczynają się od Czas na testy linia.

Czas na testy informuje, jak długo trwało polecenie AB, aby ukończyć test. Ponieważ określiliśmy -n 10 w naszym poleceniu AB, ten wiersz oczywiście poinformuje, że test trwał 10 sekund. Gdybyśmy nie określali limitu czasu, ta linia poinformuje, ile czasu zajęło zakończenie wysyłania określonej liczby żądań. Po zastosowaniu optymalizacji na serwerze WWW powinieneś zobaczyć spadek czasu na zakończenie testów (gdy nie określając limitu czasu).

Pełne żądania donosi, ile wniosków zostało wysłanych i zwróconych pomyślnie.

Nieudane żądania doniesienia, ile żądań nie było w stanie spełnić. Najwyraźniej będziesz chciał zobaczyć bardzo małą liczbę, najlepiej zero. Jeśli ten rząd zgłosi niektóre nieudane żądania, może wskazywać, że serwer WWW był przytłoczony i nie mógł odpowiedzieć na wszystkie żądania na czas.

Całkowity przeniesienie I Przeniesiono HTML Rząd zgłaszają, ile danych w bajtach zostało wysłanych na serwer WWW.

Żądania na sekundę jest średnią liczby żądań, które serwer WWW był w stanie obsłużyć w ciągu sekundy. Przydatne jest określenie, jak będzie działał Twój serwer WWW, gdy wielu użytkowników loguje się na nim w tym samym czasie.

Czas na żądanie to ile czasu zajęło przetworzenie żądania. Wartości podano w milisekundach, więc w naszym przykładzie wyjście czas wynosił 1.1 sekundy. Drugi czas na żądanie Wartość jest po prostu mnożona przez wartość współbieżności.

Szybkość transmisji to, jak szybko było w stanie przenieść dane, co nie powinno stanowić żadnego rodzaju wąskiego gardła w sieci lokalnej. W przypadku testowania przez Internet ograniczenia routingu i przepustowości mogą wpłynąć na tę wartość na długo przed samą Apache.

Czasy połączenia (MS) Sekcja wymienia czasy odpowiedzi dla różnych etapów żądań HTTP.

Czasy połączenia (MS) Min Średnia [+/- SD] Mediana Max Connect: 77 327 1008.3 89 7240 Przetwarzanie: 87 115 43.4 101 807 Oczekiwanie: 86 112 39.1 100 604 Razem: 168 442 1009.1 192 7373 

Łączyć Wskazuje, ile czasu zajęło AB, aby nawiązać połączenie z serwerem WWW.

Przetwarzanie to czas, w którym Apache wydał przetwarzanie żądań. Ponieważ AB nie może tego zmierzyć, po prostu rejestruje czas, jaki połączenie jest otwarte po zainicjowaniu.

Czekanie to, jak długo AB musi czekać między wysłaniem żądania a otrzymaniem odpowiedzi z serwera WWW.

Całkowity Wskazuje całkowity czas upływający z inicjowania połączenia z serwerem, odbieranie odpowiedzi i wreszcie zamykanie połączenia.

Ostatnia metryka Apache Bench oferuje dokładniejsze spojrzenie na średni czas odpowiedzi serwera WWW, sortując czasy połączenia na percentyle.

Odsetek wniosków podanych w określonym czasie (MS) 50% 192 66% 202 75% 224 80% 268 90% 428 95% 1207 98% 3208 99% 7345 100% 7373 (najdłuższy żądanie) 


W naszym przykładzie powyżej, 50% żądań HTTP zostało obsługiwanych i zamkniętych w zaledwie 192 ms lub mniej. Niniejszy raport wskazuje również, że odpowiedzi zajmujące 7 sekund (są ich tylko dwa), są odstające, co czyniąc Czasy połączenia Zgłoś mniej niepokojące. 90% naszych żądań HTTP zostało obsługiwanych w mniej niż pół sekundy.

Wniosek

W tym artykule widzieliśmy, jak zainstalować ławkę Apache i używać jej do przetestowania wydajności serwera WWW. Nauczyliśmy się również, jak interpretować dane wyjściowe z ławki Apache, pozwalając nam ustalić, gdzie leżą wąskie gardła. Po dalszej optymalizacji serwera WWW uruchom ponownie ławkę Apache i spodziewaj się lepszych wyników wydajności, jeśli rzeczywiście dokonano ulepszeń.

Powiązane samouczki Linux:

  • Test testu porównawczego napędu USB na Linux
  • Jak porównywać wydajność dysku na Linux
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Jak pracować z WooCommerce Rest API z Pythonem
  • Mastering Bash Script Loops
  • Porównanie Linux Apache Prefork vs Pracowni
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Analizator logów Linux Apache
  • Jak często musisz ponownie uruchomić serwer Linux?