Apache vs. LigHTTPD vg. nginx – Benchmark
Nudziło mi sie wiec postanowilem zrobić benchmark tych 3 (chyba najpopularniejszych) serwerów pod linuxem. Warunki testowe nie były idealne (słaba maszyna testowa i sieć 100Mbit) ale mam nadzieje że wyniki przydadzą się komuś ;]. Apacha, lighttpd i nginxa trochę tuningowalem ale zmiany nie są zbyt widoczne (najwyraźniej domyślne ustawienia z deba są zoptymalizowane do maszyn takich jak ta ;])
Maszyna testowa:
PIII 800 MHz
512 MB RAM
testy były robione na pliku z dev/urandom o wielkosci 1024B (wszystko wieksze zapchaloby siec ;]), pare serwów (tam gdzie widoczne bylo zwiekszenie req/s) testowalem tez na pliku o wielkosci 0b ;]. Uzywalem programu “ab” z -c (concurrency, ilość jednoczesnych żądań) na 1 2 3 4 5 6 7 8 9 10 20 30 40 50
(Edit: na jednej osi żądania/s, na drugiej ilość jednoczesnych żądań)
Niestety nie miałem lepszego sprzętu pod ręką żeby przeprowadzić testy. Pierwszą rzeczą jaką można zauważyć jest to że apache jest dosyć wolny. Nie znaczy to że jest zły, tak czy siak to tylko malutkie pliki statyczne, przy serwowaniu nowoczesnych stron duże znaczenie ma czas uruchamiania phpa/rubiego/javy/czegokolwiek, stąd spotyka sie duet lighttpd (jako cache/serwowanie plików statycznych) + apache (dynamiczny content, ma bardzo duże możliwości konfiguracji i obsluguje praktycznie wszystko co możliwe).
Pierwsza seria testów była przeprowadzona z plikiem o wielkości 1kb (większy by zatkał łacze), przeprowadzilem też je z plikem 0b ale jakaś wielką różnicę było widac tylko na lighty i boa wiec nie dołączałem reszty. Jak już powiedzialem próbowałem optymalizować poszczególne serwy ale czasami były to zyski znikome (a w takim np. boa brak żadnych opcji do tuningu) wiec nie zamieszczłem ich tu.