Wie viele Domains auf einem einzelnen Apache-Server?

9

Ich hoste ungefähr 300 Domains für meine Kunden auf einem einzigen Apache-Server. Sie haben alle nicht viel Verkehr, daher ist die Serverlast kein Problem.

Theoretisch sollte es keine Begrenzung geben, wie viele solcher Domänen mit geringem Datenverkehr auf dem Server vorhanden sein können. Ich mache mir jedoch Sorgen, dass die reine Liste der Domänen, die für jede eingehende Anforderung überprüft werden müssen, Apache verlangsamt, wenn ich zu viele Domänen auf dem Server habe Nieder.

Gibt es eine Faustregel, wie lange eine Apache-Konfiguration dauern kann und wie viele verschiedene Domänen sie problemlos verarbeiten kann? Sind 500 in Ordnung? 5000?

Klarstellung: Ich frage nicht, wie viel Verkehr ein Server verarbeiten kann. Ich weiß, dass dieser bestimmte Server mindestens doppelt so viel Verkehr verarbeiten kann. Ich möchte wissen, ob die Anzahl der Domains ein kritischer Faktor ist oder nicht.

Gene Vincent
quelle

Antworten:

9

Ich habe Server mit buchstäblich Tausenden von Domänen gesehen, die ohne Probleme ausgeführt wurden. Die Leistung wird nicht nur durch die Anzahl der von Ihnen ausgeführten Websites erheblich beeinträchtigt.

Es ist die Gesamtzahl der Anforderungen und wie viel CPU (und andere Ressourcen wie Bandbreite, Festplatten-E / A, Datenbankaufrufe usw.) pro Anforderung erforderlich sind, die die Reaktionsfähigkeit des Servers beeinflussen.

splattne
quelle
+1 - Die CPU-Zeit, die benötigt wird, um einen seriellen Scan eines im RAM gespeicherten Arrays mit 10.000 Einträgen durchzuführen, ist vernachlässigbar.
Mark Henderson
4

Es gibt keine magische Faustregel für solche Dinge. Es basiert alles auf Hardwarespezifikationen und Software-Tuning. Sie werden keine neue Site hinzufügen und dann sehen, wie Ihr Server umkippt und erstickt (es sei denn, es handelt sich um eine Site mit sehr hoher Auslastung, und Sie sind nicht darauf vorbereitet). Wie bei den meisten Dingen müssen Sie die Leistung Ihres Servers überwachen. Wenn Sie feststellen, dass sie langsamer wird, sollten Sie an diesem Punkt eine Bewertung vornehmen und Informationen zu Hardware-Upgrades oder einem neuen Server für das Hosting neuer Domänen erhalten. Um Ihre Klarstellung zu beantworten, geht es nicht um die Anzahl der Domains, sondern darum, was jede Domain einzeln als Last auf den Server bringt. Keine magische Zahl.

Holocryptic
quelle
Als spezifisch kann eine Antwort auf diese Frage sein ...
Nandhini Anand
3
Gene, um zu sichern, was Holocryptic sagt, stellen Sie sich die Arbeitslast vor, die von 500 (oder 5000) Websites mit einer oder zwei statischen Seiten erzeugt wird. Stellen Sie sich nun die Arbeitslast vor, die generiert wird, wenn Sie nur eine Website hosten. Aber was ist, wenn diese Website zufällig google.com oder facebook.com ist? Die Anzahl der Domains ist nicht das Problem, sondern die Arbeit, die diese Domains vom Server verlangen.
Rob Moir
@ Robert Moir: Ich frage nicht nach dem Verkehr, den der Server verarbeiten kann. Ich möchte wissen, ob die Anzahl der Domänen oder die Länge der Konfigurationsdatei ein Faktor ist.
Gene Vincent
3

Möglicherweise finden Sie http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching informativ. Apache verwendet eine Hash-Tabelle, um VHosts zu verarbeiten, die nicht *: 80 zugeordnet sind, und durchläuft dann eine verknüpfte Liste aller VHosts, die diesem IP: -Port zugewiesen sind, um den passenden Server (Name | Alias) zu finden. Sie müssten wahrscheinlich Millionen von Domains hosten, bevor dieser Prozess spürbar teuer wird.

Vielleicht möchten Sie auch einen Blick auf http://httpd.apache.org/docs/2.2/vhosts/mass.html werfen und dies mit Ihrem aktuellen Ansatz vergleichen. Sobald Sie genug VHosts erhalten, dass das Durchlaufen der verknüpften Liste länger dauert als ein lstat (), VirtualDocumentRootist es schneller als individuell angegebene VHosts.

BMDan
quelle
Ich verwende namenbasierte virtuelle Hosts und es scheint, dass Apache die Hash-Tabelle nur für IP-basierte virtuelle Hosts verwendet, was zu einer linearen Suche führt.
Gene Vincent
Richtig. Es tut mir leid, wenn meine Antwort in diesem Punkt nicht so klar war, wie es hätte sein können: Die Hash-Tabelle wird verwendet, um auszuwählen, über welche verknüpfte Liste iteriert werden soll, und nicht (direkt), um auszuwählen, welcher VHost eine bestimmte Anforderung bedienen soll (außer wenn er nicht ausgeführt wird) NameVirtualHost).
BMDan
1

Ich habe einige VPS-Server, die mehr als 8000 Domains hosten. Der Server läuft einwandfrei, die durchschnittliche Auslastung beträgt immer 0.xx. Ich denke, es kann problemlos mehr bewältigen. Das erneute Kompilieren von Apache dauert länger, wenn eine Domain hinzugefügt oder gelöscht wird. Außerdem ist die httpd.conf-Datei mit etwa 60 Millionen ziemlich groß. Es ist sicherer, die Anzahl der Domains auf etwa 5000 zu beschränken.

garconcn
quelle