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.
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01