Choćby w komentarzach przy wpisie (poradniku) dotyczącym przygotowania i konfiguracji serwera WWW pojawiają się w komentarzach propozycje, by Apache zastąpić np. Lighttpd czy Nginx.
Jest to argumentowane mniejszym zużyciem pamięci RAM, mniejszym obciążeniem procesora czyli ogólnie wydajnością. Za Apachem przemawia popularność – a tym samym ilość poradników, chyba prostsza konfiguracja i możliwości – w tym choćby ilość “modów” (pluginów).
Sprawa nie jest też taka oczywista jeśli chodzi o wydajność – niekoniecznie zmiana Apache2 np. na Nginx przyniesie ze sobą zwiększenie wydajności – czasem jest wręcz odwrotnie.
Ale najpierw trzeba to jakoś sprawdzić/przetestować, i tu doskonale sprawdzi się narzędzie wchodzące w skład Apache – nie tylko do testów serwerów na tym środowisku.
Spis treści w artykule
ab – Apache HTTP server benchmarking tool
Jest to prosty program wchodzący w skład serwera Apache2, a konkretnie w skład paczki “apache2-utils”.
Jeśli na serwerze nie mamy, to np. w systemie Debian możemy szybko doinstalować:
sudo apt-get install apache2-utils
Testujemy serwer – testujemy stronę
Przykładowe polecenie dla przetestowania strony “jakaś-strona-www.pl” będzie wyglądało tak:
ab -n 1000 -c 50 http://jakaś-strona-www.pl/
Gdzie:
- n – ilość “pobrań strony” (symuluje przeglądarkę)
- c – jednoczesna ilość żądań (domyślnie 1, ilość “użytkowników” w jednej chwili)
W tym przypadku jest to 20 paczek po 50 “odwiedzających” za każdym razem (20×50=1000, 100/50=20).
Obie wartości zazwyczaj trzeba dobrać indywidualnie do konkretnego testu – inaczej się testuje np. stronę na jakimś CMSie (np. WordPress) gdzie każdorazowe odpytanie serwera generuje więcej “roboty” dla niego, niż ma to miejsce w przypadku statycznej strony (zwykły HTML) – tak by test trwał dłużej niż ułamek sekundy…
Przykładowy wynik testu:
Warto jeszcze wspomnieć o parametrze “-k”, który aktywuje dla testu opcję “KeepAlive”, czyli podtrzymywanie sesji dla połączeń z serwerem.
Jeśli chcemy zmierzyć wydajność skryptu – dodajemy taką opcję, dzięki czemu odpadnie czas potrzebny na każdorazowe “zestawiania połączenia” z serwerem:
ab -n 1000 -c 100 -k http://jakaś-strona-www.pl/
Jeśli zamierzamy przeanalizować zarówno pracę skryptu (strony) jak i całego serwera, wraz z łączem do niego – nie korzystamy z tej opcji.
Więcej informacji znajdziecie na stronie projektu, jak i w Wikipedii.
- Mały dron, duże zamieszanie, czyli seria DJI Mini i zabawa w klasy (unijne klasy dla dronów) z EASA i użytkownikami - 1970-01-01
- Opcja “restore_from_flash”, czyli sposób na zapamiętywanie ustawień w ESPHome na układach ESP8266 - 1970-01-01
- Blokowe szablony powiadomień (block notice) w WooCommerce, nawet w klasycznych motywach - 1970-01-01