Najszybszy serwer WWW do udostępniania treści statycznych

12

Optymalizuję nasz system pod kątem szybszego dostarczania zawartości statycznej i zastanawiałem się, czy ktoś ma odpowiednie doświadczenie z najszybszymi serwerami internetowymi w takim celu.

Z trzech głównych kandydatów, których wziąłem pod uwagę, Nginx, Cherokee i Lighttpd, każdy wydaje się mieć własne problemy - ale raporty, które przeczytałem online, są nieco stronnicze i skłaniają się ku serwerowi, z którego aktualnie korzysta użytkownik.

Jakieś pomysły na to, gdzie znaleźć właściwy punkt odniesienia dla tego konkretnego celu, lub przynajmniej nie stronnicza lista zalet i wad? Jakieś osobiste doświadczenia i pułapki, którymi powinienem się różnić?

Dzięki

Edycja: Serverfault.com podał odpowiedź jako nginx. Nadal chciałbym usłyszeć myśli programistów z tego końca wszechświata.

Swader
źródło
1
@Swader: Proszę nie repost. Zwykle chodzi o to, aby pytanie to migrowało tam automatycznie, gdy uzyska wystarczającą liczbę głosów (5). Posiadanie dwóch identycznych pytań utrudnia znalezienie jednego, ostatecznego źródła odpowiedzi.
Cameron

Odpowiedzi:

12

Kilka dodatkowych linków i komentarzy:

  • Niedawno przeprowadzono test porównawczy Nginx, Apache, Varnish i GWan do obsługi plików statycznych o wielkości 100 bajtów.
  • Witryna Cherokee ma kilka testów porównawczych Nginx i Lighttpd.
  • Więcej linków: Jeden , dwa , trzy , cztery , pięć
  • Należy pamiętać, że typowe testy porównawcze mają wąski zakres ważności, szczególnie przy tak dużej liczbie żądań. Na przykład pierwszy test porównawczy jest w porządku, jeśli serwujesz tylko pliki 100-bajtowe, ale wyniki mogą się znacznie różnić, jeśli używasz 1kb, 10kb lub zakresu rozmiarów plików statycznych. Wiele opublikowanych testów porównawczych ma również problem z tym, że autor ma dobre doświadczenie tylko z jednym z produktów, co oznacza, że ​​ma bardzo dobrą konfigurację, a nie z innymi produktami, co oznacza, że ​​mają one nieoptymalną lub nawet złą konfigurację, która będzie wypaczać wyniki.
  • Przy tak dużej liczbie żądań będzie wiele rzeczy, które mogą wpłynąć na wyniki testu porównawczego. Nie tylko konfiguracja serwera WWW, ale także sama konfiguracja systemu operacyjnego i sprzętu. Na przykład użycie dysku SSD może zwiększyć liczbę żądań, ale może współpracować z serwerem WWW X lepiej niż Y.
  • Nie patrz tylko na maksymalne stawki żądań z testów porównawczych, ale weź również pod uwagę średnią i minimum. Na przykład spójrz na wyniki Apache z pierwszego łącza do testu porównawczego.
  • Najlepszy test porównawczy polega na tym, że robisz to sam, używając plików, które udostępniasz na sprzęcie, którego używasz. Nawet szybkie testy porównawcze mogą ujawnić problemy i efekty niewidoczne z innych opublikowanych wyników.
  • Czy w tej skali będzie naprawdę miało znaczenie, czy możesz obsłużyć 15 000 czy 20 000 żądań na sekundę? Na przykład przy 20kr / sa plik 1,7kb będzie wymagał około 100 TB przepustowości miesięcznie. Dla kwoty, którą przepustowość będzie kosztować zakup innego serwera (lub 10), będzie tanie w porównaniu. Nie wybrałbym wyłącznie, który serwer podaje największą „liczbę”, ale zastanowiłbym się też, jak łatwo jest skonfigurować / używać, czy pasuje do wymaganego zestawu funkcji, czy jest dobrze obsługiwany itp.

Osobiście korzystam z Lighttpd od lat i nie mogę być z tego bardziej zadowolony. Jestem naprawdę zaskoczony jego wynikami w porównaniu do Nginx w wynikach testu porównawczego Cherokee.

uesp
źródło
Świetne rzeczy, bardzo przydatne, dziękuję bardzo.
Swader
G-WAN jest rzeczywiście bardzo szybki. Ten link jest również interesujący. kristianlyng.wordpress.com/2011/03/16/… Lakier wydaje się bardzo dobry pod dużym obciążeniem.
Matt
1

Magazyn LinuxFormat (numer 142, marzec 2011) zawiera test porównawczy Apache, Cherokee, Lighttpd i Nginx. Cherokee jest najszybszy, więcej niż x2 w porównaniu z Apache i do 20% szybszy niż Nginx.


źródło
Dziękuję Ci! Wystarczy przeczytać artykuł i choć szkoda, że ​​tylko ostatni akapit zawiera kilka naprawdę przydatnych informacji, jest to jednak bardzo cenny punkt odniesienia!
Swader
1

Jeśli jest to czysto statyczna zawartość, potrzebujesz po prostu świetnej pamięci podręcznej przed prawdziwym serwerem internetowym. Używam ZXTM Zeusa, ale istnieje wiele innych opcji.

Siekacz 3
źródło
W moim przypadku jest to kilkadziesiąt gigabajtów materiału, we wszystkich formach, od małych obrazów po duże dokumenty flash. Uważam, że buforowanie byłoby tutaj niewystarczające. Muszę zwiększyć szybkość wyświetlania, dlatego konfigurujemy serwer zawartości statycznej. Koszt nie stanowi problemu. Dzięki, że ZXTM brzmi interesująco, przyjrzymy się temu.
Swader
brzmi bardzo podobnie do naszej konfiguracji, mamy kilka koncertów static i te zxtms wykonują dobrą robotę, są 64-bitowe, więc po prostu wrzucamy 192 GB pamięci i robi to wszystko z pamięci RAM.
Chopper3
To brzmi niesamowicie wydajnie i potężnie. Czy mógłbyś podać więcej szczegółów na temat swojej konfiguracji i rodzaju wyświetlanych danych statycznych? Czy próbowałeś porównać z innymi konfiguracjami, czy ten, którego używasz, był używany od samego początku?
Swader
1

Nie przeczytałem tego artykułu - wydaje się, że nie jest on-line, szukałem go, co mnie tu przywiodło - ale samo spojrzenie na pojedynczy wykres opublikowany przez Alvaro na jego blogu sprawia, że ​​zastanawiam się, dlaczego ten format Linux Benchmark był nachylony względem serwerów innych niż Cherokee. Zdarzyło się, że zawiera numery wersji serwerów, i coś mnie wydało dziwne, więc przeprowadziłem badania:

Server   | Tested (Released)   | Current (Released)
---------+---------------------+--------------------
Apache   | 2.2.14 (2009-10-05) | 2.2.17 (2010-10-19)
Cherokee | 1.0.15 (2010-12-29) | 1.0.15 (2010-12-29)
Lighttpd | 1.4.26 (2010-02-07) | 1.4.28 (2010-10-22)
Nginx    | 0.7.65 (2010-02-01) | 0.8.54 (2010-12-14)

Błyszcząca nowa wersja Cherokee została zainstalowana przeciwko starszym ---, aw niektórych przypadkach, znacznie starszym --- wydaniom innych serwerów. Dlatego nie przywiązywałabym zbyt dużej wagi do wyników, zwłaszcza że najbardziej konkurencyjny serwer, Nginx, miał dużą wersję od testowanej wersji.

mdorman
źródło
To niezwykle przydatny wgląd.
Swader,
0

Spójrz na

http://www.acme.com/software/thttpd/

paypal używa go do udostępniania treści statycznych.

Vamsi Krishna B.
źródło
1
Dzięki, mógłbym się tym zająć, ale jestem niewiarygodnie uprzedzony i stronniczy w stosunku do ludzi, którzy robią „oprogramowanie” i nie mogę sobie pozwolić na założenie porządnej strony. Wygląda na to, że utknął w 1992 roku i nigdy nie był aktualizowany. Ponadto nigdy nie porównali go z najlepszymi konkurentami, o których wspomniałem, zastanawiam się, czy mogę znaleźć gdzieś przyzwoite porównanie ...
Swader