2009-08-14 7 views
3

Dies ist eine Anfrage für Hinweise auf gute Dokumentation/gute Artikel. Ich bin auf der Suche nach Informationen darüber, wie viele Verbindungen ein Apache-Server vernünftig handhaben kann, und möglicherweise, wie das Gleichgewicht zwischen mehreren Servern zu laden ist. Ich habe Google-Suchen durchgeführt, aber es ist schwieriger für Anfänger, zu beurteilen, was gute Dokumente sind.Wie viele Verbindungen/wie viel Bandbreite kann Apache verarbeiten?

Antwort

7

Apache 1.3 hatte einige unangenehme Skalierbarkeitsbeschränkungen, aber spätere Versionen sind so konzipiert, dass sie mit der Hardware und dem Betriebssystem skaliert werden können, was sie zum Engpass und nicht zum Webserver selbst macht. Wie immer, es kommt darauf an, wie Sie es konfigurieren und tunen, wenn Sie über Leistung wollen. Jede Situation hat ihre eigenen Anforderungen, und sie sind hier dokumentiert:

http://httpd.apache.org/docs/2.2/misc/perf-tuning.html

Die oben vorausgesetzt, dass Sie statische Inhalte sind dient, die ist, wo Apache zeichnet. Wenn Sie dahinter Webapplikationen ausführen, ist das Ihr Engpass, nicht Apache.

+0

+1 - die Apache-Dokumentation zählt wahrscheinlich zu den "guten Dokumenten"! –

2

Leider werden Sie enttäuscht sein.

Die Fähigkeit von Apache, Verbindungen (und in der Tat auch andere Web-Server) zu handhaben, ist durch das, was die Web-Anwendung darauf tut, begrenzt. Wenn Sie statische Seiten bereitstellen, können Sie viele Anfragen mit sehr wenig Hardware bedienen.

Abhängig von der IO-Auslastung (Apache kann nicht schneller arbeiten als das IO-Subsystem - installieren Sie genügend RAM, um Ihren gesamten Inhalt zwischenzuspeichern, wenn Sie können), können Sie ein Gigabit-Netzwerk auf jeder angemessenen modernen Box auffüllen.

Sobald Sie ein Gigabit-Netzwerk gefüllt haben, müssen Sie sich um andere Dinge kümmern.

Die Gründe, warum Sie Load Balancer wirklich brauchen, sind, weil Ihre Anwendung Apache verlangsamt und die Ressourcen der Box verbraucht. Ihre Anwendung wird nicht unendlich schnell und unbegrenzt skalierbar sein. Sie müssen diese Probleme angehen.

+0

Wie ist es enttäuschend, dass Apache praktisch unbegrenzte Bandbreite bewältigen kann? Ich würde das aufregend nennen. – Karl

+0

Es ist nicht unbegrenzt Bandbreite, nur mehr als Sie sich interessieren. Der Webserver sollte selbst keinen Flaschenhals erzeugen, was nicht bedeutet, dass es nirgendwo anders sein wird. – MarkR

0

Wie die vorherigen Antworten gezeigt haben, ist Apache generell nicht der Flaschenhals, sondern meist der Applikationsserver (PHP, Mongrel, etc.). Wenn Sie jedoch nur statische Inhalte bereitstellen, sollten Sie ein Benchmarking durchführen, um zu sehen, wie schnell es gehen kann. Natürlich ist es unwahrscheinlich, dass Sie die genaue Anzahl angeben, die Apache bereitstellen kann, da vieles davon abhängt, wie Sie es konfigurieren (z. B. Deaktivieren persistenter Verbindungen) und die Spezifikationen des Servers. Um jedoch eine Schätzung zu erhalten, können Sie this benchmark als Referenz verwenden, da es auf 1-8 Kernen läuft (mit einem oder zwei Servern), so dass Sie in der Lage sein sollten, etwas zu finden, das mit der von Ihnen in Betracht gezogenen Hardware vergleichbar ist.

Um die genauesten Ergebnisse zu erhalten, sollten Sie es natürlich mit einem Lastgenerator wie ab oder httperf testen.

Verwandte Themen