it-swarm.com.de

Wie viele Anfragen sollte mein Webserver bearbeiten können?

Ich gehe nicht auf Einzelheiten zu den Spezifikationen ein, da ich weiß, dass es dafür keine wirkliche Antwort gibt. Aber ich habe heute Lasttests mit dem Befehl ab in Apache durchgeführt.

Und kam auf die Anzahl von 70 Anforderungen pro Sekunde (1000 Anforderungen mit 100 gleichzeitigen Benutzern) auf einer Seite, die aus 4 verschiedenen DB-Tabellen geladen wird, und führt einige Manipulationen mit den Daten durch. Es ist also eine ziemlich schwere Seite.

Der Server wird momentan für nichts anderes verwendet und die Last ist nur ich, da er sich in der Entwicklung befindet. Die Anwendung wird jedoch täglich von vielen Benutzern verwendet.

Aber ist das genug? Oder sollte ich mir überhaupt Sorgen machen (solange es vorbei ist X Anfragen pro Sekunde)

Ich denke, ich sollte mir keine Sorgen machen, aber ich hätte gerne ein paar Tipps dazu.

41
Ólafur Waage

70 Anfragen pro Sekunde ergeben einen Stundensatz von 252.000 Seitenrender pro Stunde.

Wenn Sie davon ausgehen, dass die durchschnittliche Browsersitzung für Ihre Website 10 Seiten tief ist, können Sie 25.000 Unikate pro Stunde unterstützen.

Sie sollten diese Zahlen wahrscheinlich mit Ihrer erwarteten Besucherzahl vergleichen, die bei den Geschäftsleuten erhältlich sein sollte.

Viele der Websites, an denen ich arbeite, sehen ungefähr 50% ihres täglichen Verkehrs in einer Spitzenzeit von ungefähr 3 Stunden an jedem Tag. Wenn dies bei Ihrer Website der Fall ist (dies hängt von der Art des von Ihnen bereitgestellten Inhalts und der Zielgruppe ab), sollten Sie in der Lage sein, eine tägliche Anzahl von eindeutigen Besuchen von rund 150.000 zu unterstützen.

Das sind ziemlich gute Zahlen; Ich denke, es sollte dir gut gehen. Es ist ratsam, sich jetzt mit Opcode-Caching und Datenbank-Tuning zu befassen, aber denken Sie daran, dass vorzeitige Optimierung die Wurzel allen Übels ist. Überwachen Sie die Site, suchen Sie nach Hotspots und warten Sie, bis der Datenverkehr zunimmt, bevor Sie einen teuren Optimierungsaufwand für ein Problem durchführen, das Sie möglicherweise nicht haben.

45
Tim Howland

Ich habe in der Vergangenheit 2 Tools verwendet, um die Leistung meiner Apache-Server zu überwachen.

Eine davon ist munin, die alle möglichen Dinge grafisch darstellt, einschließlich der Anzahl der Apache-Instanzen, der Anzahl der Verbindungen, des verfügbaren Speichers und der Prozessorauslastung usw. - und hilft mir festzustellen, wann ich mich einer Gefahrenzone nähere und warum.

Die zweite ist einfach die Apache-Server-Statusseite ( http: // Ihr_Server/Server-Status? Refresh = 1 ), mit dem ich den Status jeder Verbindung sowie die Anzahl der verfügbaren freien Verbindungen zu einem bestimmten Zeitpunkt anzeigen kann.

6
Brent

Ich würde vorschlagen, dass Sie sich nur Sorgen machen, wenn Sie glauben, dass Ihre App sehr beschäftigt sein wird, wenn sie auf dem Boden aufschlägt. Wird die betreffende Seite wahrscheinlich so stark getroffen? Schwerer? Weniger? Wenn Sie keine Ahnung haben, würde ich vermuten, dass es früher wahrscheinlich kein Problem ist. Wenn es Ihre langsamste Seite ist, kennen Sie einen Ort, an dem Sie suchen müssen, wenn Sie das System später optimieren müssen.

Es gibt auch viele Dinge, die Sie tun können, um die meisten Webserver und Datenbank-Engines zu optimieren, um mehr Leistung zu erzielen.

1
acrosman

Sobald Sie Ihre Site live geschaltet haben, können Sie sich auch mod_top 1 ansehen, um eine Echtzeitansicht der aktuellen Belastung von Apache zu erhalten. Ich habe es nicht selbst installiert, aber es scheint sicherlich mehr Informationen und eine bessere Aufteilung der Last zu haben als der Standard-Apache-Serverstatus.

0

In einem Kommentar geben Sie an, dass Ihr Server 2.900 Anforderungen pro Sekunde auf einer leeren Seite verarbeiten kann. Das deutet ziemlich stark darauf hin, dass es nicht der Webserver selbst ist - es ist die Verarbeitung.

Wenn Sie PHP verwenden, sollten Sie einen Opcode-Cacher wie APC in Betracht ziehen. Wenn die Datenbank ein Engpass ist, hilft Ihnen auch memcached .

0
ceejayoz