Wie viele Anfragen soll mein Webserver bearbeiten können?

39

Ich gehe nicht auf die Spezifikationen ein, da ich weiß, dass es keine wirkliche Antwort darauf gibt. Aber ich habe heute Lasttests mit dem abBefehl in Apache durchgeführt.

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

Der Server wird für den Moment 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 (nur solange es über X Anfragen pro Sekunde ist)

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

Ólafur Waage
quelle

Antworten:

44

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

Wenn Sie davon ausgehen, dass die durchschnittliche Browsersitzung für Ihre Website 10 Seiten umfasst, können Sie 25.000 Uniques / Stunde unterstützen.

Sie sollten diese Zahlen wahrscheinlich mit Ihrer erwarteten Besucherzahl vergleichen, die von den Leuten auf der Geschäftsseite verfügbar sein sollte.

Viele der Sites, 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 etwa 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 wächst, bevor Sie eine teure Optimierung für ein Problem durchführen, das Sie möglicherweise nicht haben.

Tim Howland
quelle
Sehr gute Antwort, genau das, wonach ich gesucht habe. Ich habe keine Optimierung vorgenommen und wollte anhand der Basiswerte sehen, wo ich gerade saß.
Ólafur Waage
"Wenn Sie davon ausgehen, dass die durchschnittliche Browsersitzung für Ihre Website 10 Seiten tief ist, können Sie 25.000 Uniques / Stunde unterstützen" ... unter der Annahme, dass jedes Unique während der Sitzung jede Sekunde eine Anfrage sendet. Wenn ein Besucher vor einem nächsten Klick / einer nächsten Anfrage nachdenken muss - zum Beispiel 5 Sekunden - können Sie mehr Besucher in parallelen Sitzungen unterstützen.
Jochem Schulenklopper,
Ich stimme der "vorzeitigen Optimierung" aus Code-Sicht voll und ganz zu. Aber die Wahl eines fehlerhaften Designs als Ganzes ist eigentlich die Wurzel allen Übels. Nichts kann ein fehlerhaftes Design außer einem Umschreiben überwinden.
Jeff Fischer
5

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

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

Die zweite ist einfach die Apache-Serverstatus-Seite ( http: // your_server / server-status? Refresh = 10 ), auf der der Status jeder Verbindung sowie die Anzahl der zu einem bestimmten Zeitpunkt verfügbaren freien Verbindungen angezeigt werden.

Brent
quelle
1

Ich würde vorschlagen, dass Sie sich nur Sorgen machen, wenn Sie der Meinung sind, dass Ihre App sehr ausgelastet ist, wenn sie den Boden berührt. Ist es wahrscheinlich, dass die betreffende Seite so schwer getroffen wird? Schwerer? Geringer, weniger? Wenn Sie keine Ahnung haben, würde ich vermuten, dass es früher wahrscheinlich kein Problem sein wird. Wenn es Ihre langsamste Seite ist, wissen Sie, wo Sie suchen müssen, wenn Sie das System später optimieren müssen.

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

Acrosman
quelle
Ich würde gerne auf ein paar Anfragen vorbereitet sein, zum Beispiel kann eine sehr schnelle Seite ungefähr 110 Anfragen pro Sekunde bearbeiten. Während der Server 2900 U / min auf einer leeren Seite verarbeiten kann.
Ólafur Waage
0

In einem Kommentar geben Sie an, dass Ihr Server 2.900 Anfragen pro Sekunde auf einer leeren Seite verarbeiten kann. Das zeigt ziemlich deutlich, dass es nicht der Webserver selbst ist, sondern die Verarbeitung.

Wenn Sie PHP verwenden, ziehen Sie einen Opcode-Cacher wie APC in Betracht . Wenn es sich bei der Datenbank um einen Engpass handelt, hilft Ihnen auch memcached .

ceejayoz
quelle
Keine besondere Sorge um Zahlen, wenn 70 U / min ausreichen.
Ólafur Waage
0

Sobald Sie Ihre Site in Betrieb genommen haben, können Sie auch mod_top 1 aufrufen , um eine Echtzeitansicht der aktuellen Apache-Last zu erhalten. Ich habe es nicht selbst installiert, aber es scheint mehr Informationen und eine bessere Lastverteilung zu haben als der Standard-Apache-Serverstatus.


quelle