Wyszukiwanie w witrynie

Testowanie obciążenia serwerów WWW za pomocą narzędzia do testów porównawczych Siege


Wiedza o tym, ile ruchu może obsłużyć Twój serwer WWW w sytuacjach stresowych, jest niezbędna do planowania przyszłego rozwoju witryny lub aplikacji. Korzystając z narzędzia o nazwie siege, możesz przeprowadzić test obciążenia na swoim serwerze i sprawdzić, jak Twój system radzi sobie w różnych okolicznościach.

Możesz użyć siege, aby ocenić ilość przesłanych danych, czas odpowiedzi, współczynnik transakcji, przepustowość, współbieżność i ile razy serwer zwrócił odpowiedzi. Narzędzie posiada trzy tryby, w jakich może działać – regresja, symulacja internetowa oraz brute force.

Ważne: Siege należy uruchamiać tylko na serwerach, których jesteś właścicielem lub na których masz wyraźne pozwolenie na testowanie. W niektórych krajach korzystanie z funkcji oblężenia na nieautoryzowanych stronach internetowych może zostać uznane za przestępstwo.

Instalowanie narzędzia do testowania obciążenia HTTP Siege w systemie Linux

Siege jest wieloplatformowy i można go zainstalować w dystrybucjach Ubuntu/Debian i CentOS/RHEL za pomocą następujących poleceń.

Aby zainstalować Siege w Debin/Ubuntu, możesz uruchomić:

sudo apt install siege

W przypadku CentOS/RHEL musisz zainstalować i włączyć repozytorium, aby zainstalować siege za pomocą:

yum install epel-release
yum install siege

Alternatywnie możesz zbudować Oblężenie ze źródła. W tym celu musisz mieć zainstalowane niezbędne do kompilacji i pakiety programistyczne.

sudo apt install build-essential       #Ubuntu/Debian
yum groupinstall 'Development Tools'   #CentOS/RHEL

Następnie możesz pobrać Siege za pomocą polecenia wget i zainstalować ze źródeł, jak pokazano.

wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install

Konfigurowanie narzędzia do testowania obciążenia HTTP Siege w systemie Linux

Po zakończeniu instalacji możesz dostosować plik konfiguracyjny siege. Znajduje się w /etc/siege/siegerc. Jeśli zdecydowałeś się zbudować pakiet ze źródła, będziesz musiał uruchomić:

sudo siege.config

Spowoduje to wygenerowanie pliku siege.conf znajdującego się w domu Twojego użytkownika ~/.siege/siege.conf.

Zawartość pliku powinna wyglądać mniej więcej tak. Pamiętaj, że odkomentowałem dyrektywy logfile i time:

cat siegerc |egrep -v "^$|#"
Przykładowe wyjście
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true

Przy obecnej konfiguracji siege będzie imitować 25 jednoczesnych użytkowników w ciągu 1 minuty.

Jesteś teraz gotowy do rozpoczęcia oblężenia.

Testowanie obciążenia witryny za pomocą narzędzia Siege Benchmarking Utility

Uruchomienie siege jest dość proste, wystarczy określić witrynę, którą chcesz przetestować, w ten sposób:

siege example.com

Jeśli dostępność utrzymuje się na poziomie 100% i nie ma żadnych nieudanych połączeń, oznacza to, że Twój system działał dobrze i nie było żadnych problemów. Warto także zwrócić uwagę na czas reakcji.

Uruchom oblężenie przeciwko wielu witrynom internetowym

Możesz przetestować wiele adresów URL, ustawiając opcję siege, aby odczytywać je z pliku. Możesz opisać adresy URL w /usr/local/etc/urls.txt w ten sposób:

Aby teraz powiedzieć siege, aby przetestował adresy URL z pliku, użyj opcji -f w następujący sposób:

siege -f /usr/local/etc/urls.txt

Możesz także użyć opcji wiersza poleceń, jeśli chcesz wypróbować inne ustawienia niż te opisane w pliku konfiguracyjnym.

  • -C – określ własny plik konfiguracyjny.
  • -q – tłumi wyjście oblężenia.
  • -g – GET, ściągnij nagłówki HTTP i wyświetl transakcję. Przydatne do debugowania.
  • -c – liczba jednoczesnych użytkowników, domyślnie 10.
  • -r – ile razy uruchomić test.
  • -t – ile czasu ma uruchomić test. Można określić S, M lub H, np.: –time=10S przez 10 sekund.
  • -d – losowe opóźnienie przed każdym żądaniem.
  • -b – brak opóźnień pomiędzy żądaniami.
  • -i – symulacja użytkownika. Służy do trafiania na losowe adresy URL.
  • -f – testuj adresy URL z określonego pliku.
  • -l – plik dziennika.
  • -H – Dodaj nagłówek do żądania.
  • -A – określ agenta użytkownika.
  • -T – Ustawia typ zawartości w żądaniu.
  • --no-parser – BRAK PARSERA, wyłącz parser strony HTML.
  • --no-follow – nie korzystaj z przekierowań HTTP.
Wniosek

Siege to potężne narzędzie do pomiaru niezawodności systemu pod dużym obciążeniem. Może być używany przez twórców stron internetowych do testowania swojego kodu, gdy witryna znajduje się pod przymusem. Powinieneś zawsze przeprowadzać testy ostrożnie, ponieważ testowany serwer może stać się niedostępny podczas oceny.