AB to skrót od ApacheBench.
Polecenie ab tworzy wiele równoczesnych wątków dostępu, aby symulować wielu odwiedzających jednocześnie dostęp do adresu URL. Jego cele testowe opierają się na adresach URL, więc może być używany do testowania zarówno obciążenia obciążenia apache, jak i innych obciążeń serwerów WWW, takich jak nginx, lighthttp, tomcat, IIS itd.
Polecenie ab ma niskie wymagania dla komputera, który generuje obciążenie, i nie zajmuje dużo CPU ani pamięci. Jednak powoduje to ogromne obciążenie na docelowym serwerze, a jego zasada jest podobna do ataków CC. Musisz też uważać na testowanie i samodzielne używanie, bo inaczej będziesz mieć zbyt duże obciążenie naraz. Może to spowodować wyczerpanie zasobów na docelowym serwerze, a w najtrudniejszych przypadkach nawet awarię.
1. Wprowadzenie do Apache Bench
ApacheBench to narzędzie do testowania obciążeń internetowych, które jest dołączone do serwerów Apache, w skrócie ab. AB jest także narzędziem wiersza poleceń o niskich natywnych wymaganiach dotyczących inicjowania ładunków, a wiele współbieżnych wątków dostępu można tworzyć według polecenia AB, symulując wielu odwiedzających jednocześnie dostęp do określonego adresu URL, co pozwala na testowanie obciążenia docelowego serwera. Ogólnie rzecz biorąc, narzędzie AB jest małe i proste, szybko się go nauczyć i może dostarczyć podstawowych wskaźników wydajności, ale nie ma wyników graficznych i nie da się go monitorować.
2. Instalacja Apache Bench
Najpierw musisz zainstalować serwer Apache, pobrać adres:Logowanie do linku jest widoczne.,
Mój komputer to system win10 64-bitowy, więc pobrałem "httpd-2.4.33-win64-VC15.zip", link:Logowanie do linku jest widoczne.
Zaleca się pobranie najnowszej wersji, ponieważ starsze wersje ab nie obsługują parametru -r.
3. Użycie na ławce Apache
Zrozum parametry
Opis parametrów: Format: ab [options] [http://]hostname[:p ort]/path
-n żądań Liczba żądań do wykonania //Łączna liczba żądań zainicjowanych w tym teście -c współbieżność Liczba wielu żądań do wykonania // Liczba żądań (lub współbieżności) generowanych jednocześnie -t limit czasu Sekundy do maksimum. Czekaj na odpowiedzi //Maksymalna liczba sekund, przez jaką test jest wykonywany domyślnie. -r Nie wychodź z gniazda przy błędach odbioru. Wyrzuć wyjątek, aby kontynuować zadanie testowe -p postfile Plik zawierający dane do POST // Plik zawierający dane, które muszą być POST, w formacie pliku takim jak "p1=1&p2=2". Metoda użycia to -p 111.txt
-T typu content-nagłówek typu content-type dla POSTingu Nagłówek typu content-type używany dla danych POST, taki jak -T "application/x-www-form-urlencoded". (co-p) -v rozmówność Ile informacji o rozwiązywaniu problemów wydrukować Ustaw poziom szczegółowości do wyświetlania informacji – wartość 4 lub więcej pokaże nagłówek, wartość 3 lub więcej kod odpowiedzi (404, 200 itd.), a wartość 2 lub więcej ostrzeżenie i inne informacje. -V wyświetla numer wersji i kończy z wyjściem. -C atrybut Dodaj ciasteczko, np. -C "c1=1234,c2=2,c3=3" (powtarzalne) -C cookie-name=value Dodaj ciasteczko do linii żądania: linia. Typową formą jest para parametrów imię=wartość. Ten parametr można powtórzyć, dzieląc przecink. Wskazówka: Możesz użyć zasady implementacji sesji, aby przekazać parametr JSESSIONID i osiągnąć funkcję utrzymania sesji, na przykład -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Wydrukuj wyniki w tabelach HTML // Wyniki wydrukuj w formacie tabeli HTML. Domyślnie jest to tabela o szerokości dwóch kolumn na białym tle. -Używam HEAD zamiast GET -x atrybutów Ciąg do wstawienia jako atrybuty tabeli -y atrybuty Ciąg do wstawienia jako atrybuty tr -z atrybuty Ciąg do wstawienia jako atrybuty td lub th -Atrybut H Dodaj dowolną linię nagłówka, np. 'Accept-Encoding: gzip' Wstawiony po wszystkich normalnych liniach nagłówków. (powtarzalne) -Atrybut Dodaj podstawową weryfikację WWW, atrybuty to dwukropek oddzielony od nazwy użytkownika i hasła. -P atrybut Dodaj podstawowe uwierzytelnianie proxy, atrybuty to dwukropek oddzielony od nazwy użytkownika i hasła. -X proxy:port Proxyserver i port do użycia -V Drukuj numer wersji i wyjście -k Użyj funkcji HTTP KeepAlive -d Nie pokazuj percentyli przy stole. -S Nie pokazuj estymatorów zaufania i ostrzeżeń. -g nazwa pliku Wyjście zebranych danych do pliku w formacie gnuplot. -e nazwa pliku Wyjściowy plik CSV z procentami serwowanych -h Wyświetlaj informacje o użytkowaniu (ten komunikat) Jest wiele parametrów, zazwyczaj możemy użyć parametrów -c i -n. Na przykład:
Rozpakuj "httpd-2.4.33-win64-VC15.zip", przejdź do \Apache24\bin i zacznij od linii poleceń cmd, jak pokazano na poniższym rysunku:
SSL nie skompilowany w; brak wsparcia dla https: SSL nie jest kompilowany w; Nie ma wsparcia dla https, co oznacza, że strona nie obsługuje https.
Wyniki testów:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL nie skompilowany w; Brak wsparcia dla https
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ To jest ApacheBench, wersja 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Logowanie do linku jest widoczne. Licencjonowany przez The Apache Software Foundation,Logowanie do linku jest widoczne.
Benchmarkingwww.itsvse.com(bądź cierpliwy) Zrealizowałem 100 zgłoszeń Zrealizowałem 200 zgłoszeń Zrealizowałem 300 zgłoszeń Zrealizowałem 400 zleceń Zrealizowałem 500 zleceń Zrealizowałem 600 zgłoszeń Zrealizowałem 700 zleceń Zrealizowałem 800 zgłoszeń Zrealizowałem 900 zgłoszeń Zrealizowałem 1000 zgłoszeń Zrealizowałem 1000 próśb
Oprogramowanie serwera: Nazwa hosta serwera: www.itsvse.com Port: 80
Ścieżka dokumentu: / Długość dokumentu: 178 bajtów
Poziom współbiegu: 10 Czas trwania testów: 44,916 sekundy Pełna liczba zamówień: 1000 Nieudane zgłoszenia: 0 Odpowiedzi spoza 2xx: 1000 Łącznie przeniesiony: 349000 bajtów Przesyłany HTML: 178000 bajtów Liczba żądań na sekundę: 22,26 [#/sek] (średnia) Czas na jedno żądanie: 449.164 [ms] (średnio) Czas na jedno żądanie: 44,916 [ms] (średnio, dla wszystkich jednoczesnych żądań) Szybkość transferu: 7,59 [Kbajtów/sek] odbiór
Czasy połączenia (ms) Średnia minimalna[+/-SD] mediana maksymalna
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Procent żądań obsłużonych w określonym czasie (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (najdłuższe żądanie) Analiza parametrów:
Ścieżka dokumentu: Strona testowa Długość dokumentu: Rozmiar strony Poziom współbieżności: Liczba testowanych równocześności równocześnie Czas trwania testów: Czas trwania całego testu Kompletne żądania: Liczba ukończonych żądań Nieudane żądania: Liczba nieudanych żądań Błędy zapisu: 0 Łączna liczba przeniesionych: Ilość sieci przekazanej w trakcie procesu Przeniesienie HTML: Ilość treści HTML przesyłanej w trakcie procesu Liczba żądań na sekundę: Jednym z najważniejszych wskaźników, równoważnych transakcjom na sekundę w LR, oraz średniej w nawiasie wskazuje, że jest to średnia Czas na żądanie: Dwa najważniejsze wskaźniki, równoważne średniemu czasowi odpowiedzi transakcji w LR, w nawiasie wskazują, że jest to średnia Czas na żądanie: Średnia rzeczywistego czasu wykonania dla każdego żądania połączenia Szybkość transferu: Średni ruch na sekundę w sieci, co może pomóc wykluczyć problem nadmiernego ruchu sieciowego powodującego długie czasy odpowiedzi
|