mar 252011
 

Ogólnie przyjętą prawdą jest to, że Nginx jest wydajniejszy od Apache. Jednak czy warto stawiać osobny serwer do serwowania treści statycznych?

Aby to sprawdzić pobawiłem się trochę pobawić programem apachebench. Przeprowadziłem w sumie dwa testy. Dla strasznie dużego obciążenia, oraz drugi symulujący bardziej normalne użycie.

Apache vs Nginx: requests per secondApache vs Nginx: Time per requestNa drugim wykresie można zauważyć wyraźny wzrost wydajności Apacha. Początkowo sądziłem, że to dziwny błąd pomiarowy, ale zawsze wyniki były takie same. Widocznie Apache dużo lepiej sobie radzi na wielordzeniowych procesorach niż Nginx. Innego wytłumaczenia nie potrafię znaleźć. Później jednak im więcej połączeń, tym większa przewaga Nginxa. Powyżej 800 równoległych żądań Apache już nie potrafił obsłużyć i generował błędy.

Osobiście powiem, iż spodziewałem znacznie większej przewagi nieskomplikowanego serwera. Okazuje się, że niewielkim obciążeniu praktycznie jej nie ma. Dlatego jeśli nie posiadasz gigantycznego serwera, nie warto osobno stawiać Nginxa do hostowania plików statycznych.