Drupalize.Me

 A Drupalize.Me Tutorial

Siege to przydatne narzędzie do testowania obciążenia, które można dodać do zestawu narzędzi do testowania wydajności. Ze strony internetowej:

Siege to narzędzie do testowania obciążenia i analizy porównawczej HTTP. Został zaprojektowany, aby umożliwić programistom zmierzenie ich kodu pod przymusem, aby zobaczyć, jak będzie on wytrzymywać ładowanie w Internecie. Siege obsługuje podstawowe uwierzytelnianie, pliki cookie, protokoły HTTP, HTTPS i FTP. Pozwala użytkownikowi trafić na serwer z konfigurowalną liczbą symulowanych klientów. Ci klienci umieszczają serwer ” w oblężeniu.”

testowanie ładowania jest przydatne do testowania wydajności witryny i infrastruktury, na której działa. Nie ma nic gorszego niż posiadanie strony w swojej witrynie opublikowanej w popularnej witrynie i obserwowanie, jak witryna rozpada się pod obciążeniem. Oblężenie może symulować aktywność w Twojej witrynie, a następnie możesz korzystać z witryny z przeglądarki tak, jak zwykle, podczas gdy oblężenie jest uruchomione i naprawdę poczuć, jak twoja witryna reaguje pod obciążeniem.

ten post na blogu będzie dotyczył instalacji Siege na OS X i Linuksie oraz uruchomienia podstawowego testu obciążenia za pomocą Siege.

założenia

ten samouczek zakłada, że wygodnie używasz wiersza poleceń do wydawania podstawowych poleceń i masz zainstalowaną stronę internetową na komputerze lokalnym, którą możesz przetestować.

instalacja Siege

Pobierz

najpierw przejdź do https://www.joedog.org/siege-home/ i znajdź adres URL archiwum najnowszej wersji aplikacji Siege. W momencie pisania tego tekstu jest to wersja 3.1.0.

Zapisz

teraz otwórz aplikację Terminal, zapiszemy to archiwum w naszym katalogu do pobrania.

na OS X
cd ~/Downloadscurl -O http://download.joedog.org/siege/siege-3.1.0.tar.gz
na Linuksie
cd ~/Downloadswget http://download.joedog.org/siege/siege-3.1.0.tar.gz

rozpakuj archiwum

tar -xvf siege-3.1.0.tar.gz

Zmień na katalog archiwum

cd siege-3.1.0

Skonfiguruj i zbuduj!

./configuremakemake install

przeczytaj dokumenty

jeśli potrzebujesz, zapoznaj się z pełną instrukcją instalacji.

zweryfikuj zainstalowaną wersję

świetnie, teraz możemy sprawdzić, czy poprawnie zainstalowaliśmy siege, sprawdźmy wersję, którą zainstalowaliśmy w naszym systemie.

siege -VSIEGE 3.1.0

Hurra, mamy wersję 3.1.0 oblężenia zainstalowanego na naszym systemie, przejdźmy do testów!

Load Testing with Siege

zamierzam użyć strony Drupala, którą zainstalowałem lokalnie, aby załadować test. Aby rozpocząć podstawowe oblężenie, uruchom następujące polecenie, używając żądanego adresu URL witryny (używam http://drupal7.local):

siege http://drupal7.local

spowoduje to rozpoczęcie oblężenia z domyślnymi opcjami, czyli 15 jednoczesnych użytkowników uzyskujących dostęp do strony indeksu witryny, dopóki nie zatrzymasz oblężenia, naciskając klawisz control + c.

to dostarczy statystyki oblężenia dla Twojego testu:

Lifting the server siege... done.Transactions: 385 hitsAvailability: 100.00 %Elapsed time: 76.02 secsData transferred: 0.84 MBResponse time: 2.40 secsTransaction rate: 5.06 trans/secThroughput: 0.01 MB/secConcurrency: 12.18Successful transactions: 385Failed transactions: 0Longest transaction: 5.73Shortest transaction: 0.31

interpretacja wyników testu obciążenia

po pierwsze, moje wyniki nie są imponujące, ponieważ uruchamiam je na maszynie Wirtualnej o małej mocy na mojej maszynie lokalnej, jeśli testujesz obciążenia w zakładach produkcyjnych, powinieneś spodziewać się znacznie krótszego czasu reakcji.

transakcje to liczba odsłon serwera. W przykładzie 385 transakcji.

upływ czasu to czas trwania całego testu oblężniczego. Jest to mierzone od momentu wywołania przez użytkownika oblężenia, aż do zakończenia transakcji przez ostatniego symulowanego użytkownika. Pokazany powyżej test trwał 76,02 sekundy.

dane przesyłane to suma danych przesyłanych do każdego symulowanego użytkownika. Zawiera informacje nagłówka, a także treść. Ponieważ zawiera on informacje o nagłówku, liczba zgłaszana przez siege będzie większa niż liczba zgłaszana przez serwer. W trybie internetowym, który wyświetla losowe adresy URL w pliku konfiguracyjnym, oczekuje się, że liczba ta będzie się różnić w zależności od uruchomienia.

Czas odpowiedzi to średni czas potrzebny na odpowiedź na każde żądanie symulowanego użytkownika.

szybkość transakcji to średnia liczba transakcji, które serwer był w stanie obsłużyć na sekundę, w skrócie: transakcje podzielone przez upływający czas.

przepustowość to średnia liczba bajtów przesyłanych co sekundę z serwera do wszystkich symulowanych użytkowników.

współbieżność to średnia liczba jednoczesnych połączeń, która rośnie wraz ze spadkiem wydajności serwera.

udane transakcje to liczba razy, gdy serwer zwrócił kod mniej niż 400. W związku z tym przekierowania są uważane za udane transakcje.

testowanie wielu stron

aby przetestować wiele adresów URL, możemy użyć pliku URL, aby dostarczyć listę adresów URL do przetestowania podczas naszego oblężenia. Utwórz plik tekstowy o nazwie URL.txt i dodaj adresy URL, które chcesz przetestować (jeden na linię), tworzę swój w katalogu domowym mojego użytkownika w ~ / Url.txt

:

# Comments proceeded by a hashhttp://drupal7.local/http://drupal7.local/node/2http://drupal7.local/node/7http://drupal7.local/rest/node

teraz możesz rozpocząć oblężenie i podać ścieżkę do utworzonego pliku, aby rozpocząć test z tymi adresami URL:

siege -f /path/to/your/urls.txt

tryb internetowy

tryb internetowy jest kolejną ciekawą opcją w Siege, w której każdy adres URL, który użytkownik uderzy w teście, jest randomizowany. To naśladuje rzeczywistą sytuację, w której nie można przewidzieć, który adres URL osoba odwiedzi na swojej stronie. Inną implikacją tej opcji jest to, że nie ma gwarancji, że każda strona w pliku tekstowym adresów URL zostanie trafiona z powodu randomizacji.

aby rozpocząć oblężenie w trybie internetowym, użyj następującego polecenia, ponownie przechodząc w ścieżkę adresów URL.txt:

siege -if /path/to/your/urls.txt

zwiększanie liczby jednoczesnych użytkowników

zwiększanie liczby jednoczesnych użytkowników odbywa się za pomocą flagi-c, przekazując liczbę jednoczesnych użytkowników, z którymi chcesz przetestować:

siege -if /path/to/your/urls.txt -c 500
' -c NUM '' –concurrent=NUM '

Concurrent users (requires argument): ta opcja pozwala użytkownikowi na obciążenie serwera www liczbą symulowanych użytkowników. Ilość jest ograniczona tylko dostępnymi zasobami obliczeniowymi, ale realistycznie kilkuset symulowanych użytkowników jest równa wiele razy tej liczbie w rzeczywistych sesjach użytkowników. Wybrany numer oznacza liczbę transakcji obsługiwanych przez serwer. Nie reprezentuje liczby jednoczesnych sesji. Pamiętaj, że prawdziwi użytkownicy poświęcają trochę czasu na przeczytanie żądanej strony.

przydatne jest również użycie flagi-d, która pozwala na przeciąganie transakcji:

siege -if /path/to/your/urls.txt -c 500 -d 3
' -d NUM '' –delay=NUM 'Each siege simulated user is delayed for a random number of seconds between one and NUM. If you are benchmarking performance, it is recommended that you use a 1 second delay ( -d1 ). The default value is three (3 ). This delay allows for the transactions to stagger rather then to allow them to pound the server in waves.

Siege ma o wiele więcej do zaoferowania i zachęcam do zapoznania się z pełną dokumentacją, aby uzyskać pełniejsze zrozumienie, ale mam nadzieję, że ten samouczek pomoże ci w drodze.

jeśli potrzebujesz oblężenia stron, które wymagają uwierzytelnienia jako użytkownik Drupala, sprawdź ten skrypt pomocniczy: https://github.com/msonnabaum/DrupalSiege

Odinstalowywanie Siege i czyszczenie

jeśli zdecydujesz, że nie chcesz już instalować Siege w systemie, najpierw odinstaluj go, a następnie usuń katalog źródłowy i archiwa:

Zmień na katalog pobrany do Siege:

cd ~/Downloads/siege-3.1.0/make uninstall

teraz możesz bezpiecznie usunąć folder źródłowy, a archiwum w:

~/Downloads/siege-3.1.0~/Downloads/siege.-3.1.0.tar.gz

Wiele hałasu o wydajność

jeśli Twoja strona czuje się źle podczas oblężenia, będziesz chciał dowiedzieć się dlaczego! Kilka rzeczy do sprawdzenia:

  • obciążenie serwera
  • czy wdrożyłeś jakieś buforowanie?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.