ab - instrukcja obsługi, opcje, przykłady poleceń


NAZWA

ab - Narzędzie do testowania serwerów Apache HTTP

STRESZCZENIE

ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

STRESZCZENIE

ab to narzędzie do testowania wydajności serwera Apache Hypertext Transfer Protocol (HTTP). Został zaprojektowany, aby dać ci wyobrażenie o tym, jak działa twoja bieżąca instalacja Apache. Pokazuje to w szczególności, ile żądań na sekundę jest w stanie obsłużyć Twoja instalacja Apache.

OPCJE

-A auth-username:password

Podaj poświadczenia uwierzytelniania BASIC na serwerze. Nazwa użytkownika i hasło są oddzielone pojedynczym : i przesyłane przewodowo w formacie base64. Ciąg jest wysyłany niezależnie od tego, czy serwer go potrzebuje (tj., wysłał wymagane uwierzytelnienie 401).

-b windowsize

Rozmiar bufora wysyłania/odbierania TCP w bajtach.

-B local-address

Adres do powiązania podczas nawiązywania połączeń wychodzących.

-c concurrency

Liczba wielu żądań do wykonania jednocześnie. Domyślnie jest to jedno żądanie na raz.

-C cookie-name=value

Dodaj linię Cookie: do żądania. Argument ma zazwyczaj postać pary nazwa=wartość. To pole jest powtarzalne.

-d

Nie wyświetlaj tabeli „procent obsłużenia w XX [ms]”. (starsze wsparcie).

-e csv-file

Napisz plik z wartościami rozdzielanymi przecinkami (CSV), który zawiera dla każdego procentu (od 1% do 100%) czas (w milisekundach) potrzebny do obsłużenia tego procentu żądań. Jest to zwykle bardziej przydatne niż plik „gnuplot”; ponieważ wyniki są już „posortowane”.

-E client-certificate-file

Łącząc się z witryną SSL, użyj dostarczonego certyfikatu klienta w formacie PEM, aby uwierzytelnić się na serwerze. Oczekuje się, że plik będzie zawierał certyfikat klienta, następnie certyfikaty pośrednie i klucz prywatny. Dostępne w wersji 2.4.36 i nowszych.

-f protocol

Określ protokół SSL/TLS (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 lub ALL). Obsługa TLS1.1 i TLS1.2 jest dostępna w wersji 2.4.4 i nowszych.

-g gnuplot-file

Zapisz wszystkie zmierzone wartości jako plik „gnuplot” lub TSV (oddzielone wartości tabulatorami). Ten plik można łatwo zaimportować do pakietów takich jak Gnuplot, IDL, Mathematica, Igor czy nawet Excel. Etykiety znajdują się w pierwszym wierszu pliku.

-h

Wyświetl informacje o użytkowaniu.

-H custom-header

Dołącz dodatkowe nagłówki do żądania. Argument ma zwykle postać prawidłowej linii nagłówka zawierającej parę pole-wartość oddzieloną dwukropkami (tj., "Accept-Encoding: zip/zop;8bit" ).

-i

Wykonuj żądania HEAD zamiast GET.

-k

Włącz funkcję HTTP KeepAlive, tj., wykonaj wiele żądań w ramach jednej sesji HTTP. Wartość domyślna to brak KeepAlive.

-l

Nie zgłaszaj błędów, jeśli długość odpowiedzi nie jest stała. Może to być przydatne w przypadku stron dynamicznych. Dostępne w wersji 2.4.7 i nowszych.

-m HTTP-method

Niestandardowa metoda HTTP dla żądań. Dostępne w wersji 2.4.10 i nowszych.

-n requests

Liczba próśb o wykonanie sesji testów porównawczych. Domyślnie wykonuje się tylko jedno żądanie, co zwykle prowadzi do niereprezentatywnych wyników testów porównawczych.

-p POST-file

Plik zawierający dane do POST. Pamiętaj też o ustawieniu -T.

-P proxy-auth-username:password

Podaj poświadczenia uwierzytelniania BASIC do serwera proxy w trasie. Nazwa użytkownika i hasło są oddzielone pojedynczym : i przesyłane przewodowo w formacie base64. Ciąg jest wysyłany niezależnie od tego, czy serwer proxy go potrzebuje (tzn. wysłał wymagane uwierzytelnienie serwera proxy 407).

-q

Podczas przetwarzania więcej niż 150 żądań ab wyświetla licznik postępu na stderr co 10% lub mniej więcej 100 żądań. Flaga -q pominie te komunikaty.

-r

Nie wychodź przy błędach odbierania gniazda.

-s timeout

Maksymalna liczba sekund oczekiwania przed upływem limitu czasu gniazda. Wartość domyślna to 30 sekund. Dostępne w wersji 2.4.4 i nowszych.

-S

Nie wyświetlaj wartości mediany i odchylenia standardowego ani nie wyświetlaj komunikatów ostrzegawczych/błędów, gdy średnia i mediana są oddalone od siebie o więcej niż jeden lub dwa razy więcej niż odchylenie standardowe. I domyślnie do wartości min/avg/max. (starsze wsparcie).

-t timelimit

Maksymalna liczba sekund do spędzenia na testach porównawczych. Oznacza to -n 50000 wewnętrznie. Użyj tego do porównania serwera w ustalonym całkowitym czasie. Domyślnie nie ma limitu czasowego.

-T content-type

Nagłówek typu zawartości do użycia dla danych POST/PUT, np. application/x-www-form-urlencoded. Wartość domyślna to tekst/zwykły.

-u PUT-file

Plik zawierający dane do PUT. Pamiętaj też o ustawieniu -T.

-v verbosity

Ustaw poziom gadatliwości — 4 i wyżej drukuje informacje w nagłówkach, 3 i wyżej drukuje kody odpowiedzi (404, 200 itd.), 2 i powyżej drukuje ostrzeżenia i informacje.

-V

Wyświetl numer wersji i wyjdź.

-w

Wydrukuj wyniki w tabelach HTML. Domyślna tabela ma szerokość dwóch kolumn i białe tło.

-x <table>-attributes

Ciąg do użycia jako atrybuty dla tabeli. Atrybuty są wstawiane tabela tutaj.

-X proxy[:port]

Użyj serwera proxy dla żądań.

-y <tr>-attributes

Ciąg do użycia jako atrybuty dla .

-z <td>-attributes

Ciąg do użycia jako atrybuty dla .

-Z ciphersuite

Określ zestaw szyfrów SSL/TLS (zobacz szyfry openssl)

WYJŚCIE

Poniższa lista opisuje wartości zwracane przez ab:

Server Software

Wartość, jeśli istnieje, zwrócona w nagłówku HTTP server pierwszej udanej odpowiedzi. Obejmuje to wszystkie znaki w nagłówku od początku do momentu wykrycia znaku o wartości dziesiętnej 32 (przede wszystkim: spacja lub CR/LF).

Server Hostname

Adres DNS lub IP podany w wierszu poleceń

Server Port

Port, z którym łączy się ab. Jeśli w wierszu poleceń nie zostanie podany port, domyślnie będzie to 80 dla http i 443 dla https.

SSL/TLS Protocol

Parametry protokołu negocjowane między klientem a serwerem. Zostanie to wydrukowane tylko wtedy, gdy używany jest protokół SSL.

Document Path

Identyfikator URI żądania przeanalizowany z ciągu wiersza polecenia.

Document Length

Jest to rozmiar w bajtach pierwszego pomyślnie zwróconego dokumentu. Jeśli długość dokumentu zmieni się podczas testowania, odpowiedź jest uważana za błąd.

Concurrency Level

Liczba jednoczesnych klientów używanych podczas testu

Time taken for tests

Jest to czas, jaki upływa od momentu utworzenia pierwszego połączenia przez gniazdo do momentu otrzymania ostatniej odpowiedzi

Complete requests

Liczba pomyślnie otrzymanych odpowiedzi

Failed requests

Liczba żądań, które zostały uznane za niepowodzenie. Jeśli liczba jest większa od zera, zostanie wydrukowany kolejny wiersz z liczbą żądań, które nie powiodły się z powodu połączenia, odczytu, nieprawidłowej długości treści lub wyjątków.

Write errors

Liczba błędów, które zakończyły się niepowodzeniem podczas zapisu (przerwany potok).

Non-2xx responses

Liczba odpowiedzi, które nie mieściły się w serii 200 kodów odpowiedzi. Jeśli wszystkie odpowiedzi wynosiły 200, to pole nie jest drukowane.

Keep-Alive requests

Liczba połączeń, które spowodowały żądania Keep-Alive

Total body sent

Jeśli skonfigurowano wysyłanie danych w ramach testu, jest to łączna liczba bajtów wysłanych podczas testów. To pole jest pomijane, jeśli test nie zawiera treści do wysłania.

Total transferred

Całkowita liczba bajtów odebranych z serwera. Ta liczba to zasadniczo liczba bajtów przesłanych przewodem.

HTML transferred

Całkowita liczba bajtów dokumentów odebranych z serwera. Ta liczba nie obejmuje bajtów odebranych w nagłówkach HTTP

Requests per second

Jest to liczba żądań na sekundę. Ta wartość jest wynikiem podzielenia liczby żądań przez całkowity czas

Time per request

Średni czas poświęcony na żądanie. Pierwsza wartość jest obliczana za pomocą formuły współbieżność * timetaken * 1000/done, a druga wartość jest obliczana za pomocą formuły timetaken * 1000/done

Transfer rate

Szybkość transferu obliczona według wzoru totalread/1024/timetaken

BŁĘDY

Istnieją różne statycznie zadeklarowane bufory o stałej długości. W połączeniu z leniwym analizowaniem argumentów wiersza poleceń, nagłówków odpowiedzi z serwera i innych zewnętrznych danych wejściowych może to cię ugryźć.

Nie implementuje w pełni protokołu HTTP/1.x; akceptuje tylko niektóre „oczekiwane” formy odpowiedzi. Dość intensywne użycie strstr(3) jest widoczne w profilu, co może wskazywać na problem z wydajnością; tj. należy zmierzyć wydajność ab, a nie wydajność serwera.