Ile domen na jednym serwerze Apache?

9

Hostuję około 300 domen dla moich klientów na jednym serwerze Apache. Wszystkie nie mają dużego ruchu, więc obciążenie serwera nie stanowi problemu.

Teoretycznie nie powinno być limitu, ile domen o tak niskim natężeniu ruchu mogę mieć na serwerze, ale martwię się, że jeśli mam zbyt wiele domen na serwerze, sama lista domen do sprawdzenia dla każdego przychodzącego żądania spowolni Apache na dół.

Czy istnieje ogólna zasada, jak długo może trwać konfiguracja Apache i ile różnych domen może obsłużyć bez problemu? Czy 500 jest w porządku? 5000?

Wyjaśnienie: Nie pytam o ile ruchu może obsłużyć serwer. Wiem, że ten konkretny serwer może obsłużyć co najmniej dwukrotność bieżącego ruchu. Chcę wiedzieć, czy liczba domen jest czynnikiem krytycznym, czy nie.

Gene Vincent
źródło

Odpowiedzi:

9

Widziałem serwery z dosłownie tysiącami domen działającymi bez problemów. Wydajność nie zmniejsza się znacząco tylko na podstawie liczby obsługiwanych witryn.

To ogólna liczba żądań i ilość procesora (i innych zasobów, takich jak przepustowość, dyskowe operacje we / wy, połączenia z bazą danych itp.) Wymaganych na żądanie, mają wpływ na czas reakcji serwera.

splattne
źródło
+1 - ilość czasu procesora potrzebna nawet do seryjnego skanowania 10 000 tablic wpisów przechowywanych w pamięci RAM jest znikoma.
Mark Henderson
4

Nie ma żadnej magicznej zasady dla tego rodzaju rzeczy. Wszystko opiera się na specyfikacjach sprzętowych i strojeniu oprogramowania. Nie zamierzasz dodawać jednej nowej witryny, a następnie przechylać się na serwer i dusić się na śmierć (chyba że jest to naprawdę strona o wysokim zużyciu zaraz po wejściu i nie jesteś na to przygotowany). Podobnie jak w przypadku większości rzeczy, musisz monitorować wydajność serwera, a kiedy zaczniesz spowalniać, oceń w tym momencie i sprawdź modernizacje sprzętu lub nowy serwer do obsługi nowego hostingu domen. Aby odpowiedzieć na wyjaśnienie, nie chodzi o liczbę domen, lecz o to, co każda domena przynosi indywidualnie jako obciążenie serwera. Brak magicznej liczby.

Holocryptic
źródło
Konkretnie można odpowiedzieć na to pytanie ...
Nandhini Anand
3
Gene, aby wykonać kopię zapasową tego, co mówi Holocryptic, wyobraź sobie obciążenie generowane przez 500 (lub 5000) stron internetowych z jedną lub dwiema statycznymi stronami. Teraz wyobraź sobie obciążenie generowane, jeśli hostujesz tylko jedną stronę internetową. Ale co się stanie, jeśli ta strona internetowa to google.com lub facebook.com - liczba domen nie jest problemem, to praca, o którą proszą serwer.
Rob Moir
@Robert Moir: Nie pytam o ruch, który serwer może obsłużyć. Chcę wiedzieć, czy liczba domen lub długość pliku konfiguracyjnego jest czynnikiem.
Gene Vincent
3

Można znaleźć http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching pouczające. Apache używa tabeli skrótów do obsługi VHostów, które nie są zamapowane na *: 80, a następnie iteruje połączoną listę wszystkich VHostów przypisanych do tego portu IP: w celu znalezienia pasującego serwera (nazwa | alias). Prawdopodobnie będziesz musiał hostować miliony domen, zanim proces ten stanie się zauważalnie drogi.

Możesz także zajrzeć na http://httpd.apache.org/docs/2.2/vhosts/mass.html i porównać to z obecnym podejściem; gdy zdobędziesz wystarczającą liczbę hostów VHost, że przejście listy połączonej zajmie więcej czasu niż lstat (), VirtualDocumentRootskończy się to szybciej niż VHosty określone indywidualnie.

BMDan
źródło
Używam wirtualnych hostów opartych na nazwach i wydaje się, że Apache używa tabeli skrótów tylko dla wirtualnych hostów opartych na IP, co powoduje liniowe wyszukiwanie.
Gene Vincent
Poprawny. Przepraszam, jeśli moja odpowiedź nie była tak jasna, jak mogła być w tym miejscu: tabela skrótów służy do wybierania listy połączonej do iteracji, a nie (bezpośrednio) do wyboru, który VHost powinien obsłużyć dane żądanie (z wyjątkiem sytuacji, gdy nie jest uruchomiony NameVirtualHost).
BMDan
1

Mam kilka serwerów VPS, które obsługują ponad 8000 domen. Serwer działa dobrze, średnie obciążenie jest zawsze na poziomie 0.xx. Myślę, że poradzi sobie więcej bez problemu. Ponowna kompilacja Apache będzie wymagała więcej czasu podczas dodawania lub usuwania domeny. Ponadto plik httpd.conf jest dość duży, około 60 mln. Bezpieczniej jest ograniczyć liczbę domen do około 5000.

garconcn
źródło