Was sind die "durchschnittlichen" Anforderungen pro Sekunde für eine Produktionswebanwendung?

120

Ich habe keinen Bezugsrahmen in Bezug auf das, was als "schnell" angesehen wird. Ich hatte mich das immer gefragt, aber nie eine klare Antwort gefunden ...

capotej
quelle
9
Es gibt keine klare Antwort. Schnell ist ein relativer Begriff, und die Antwort hängt stark von Ihrem Kontext und Ihrer Anwendung ab.
Dave L.

Antworten:

103

OpenStreetMap scheint 10-20 pro Sekunde zu haben

Wikipedia scheint 30000 bis 70000 pro Sekunde zu sein, verteilt auf 300 Server (100 bis 200 Anfragen pro Sekunde pro Maschine, die meisten davon sind Caches).

Geograph erhält 7000 Bilder pro Woche (1 Upload pro 95 Sekunden)

ABl
quelle
6
Wow, das ist ziemlich langsam für Wikipedia
Joseph Persie
8
@JosephPersie Vergiss nicht, dir das Post-Datum anzusehen, hehe.
Spectral
Es werden immer noch weniger als 200.000 / s angezeigt - die neue Überwachungsseite lautet grafana.wikimedia.org
OJW
Interessanterweise habe ich nur das Streaming von Webpieces auf Datensätzen pro Sekunde im Vergleich zu Anfragen pro Sekunde getestet. Ich denke, Anfragen / Sekunde befinden sich im selben Stadion (100 bis 200), aber beim Streaming werden bis zu 1140 Datensätze pro Sekunde aufgenommen (ndjson). Jedenfalls dachte ich, ich würde mehr Zahlen teilen. (Ich bin mir nicht sicher, ob sich dies ändern wird, da dies getestet wurde und über 2 Microservices in die In-Memory-Datenbank gestreamt wurde. Ich muss noch mit Live-DB testen. DB kann unser Engpass sein und uns wieder zum Erliegen bringen, es sei denn, wir wechseln zu nosql.)
Dean Hiller
50

Ich bin mir nicht sicher, ob noch jemand interessiert ist, aber diese Informationen wurden über Twitter (und auch hier ) veröffentlicht:

Die Statistiken

  • Über 350.000 Benutzer. Die tatsächlichen Zahlen sind wie immer sehr super super streng geheim.
  • 600 Anfragen pro Sekunde.
  • Durchschnittlich 200-300 Verbindungen pro Sekunde. Spitze auf 800 Verbindungen pro Sekunde.
  • MySQL hat 2.400 Anfragen pro Sekunde bearbeitet.
  • 180 Rails-Instanzen. Verwendet Mongrel als "Web" -Server.
  • 1 MySQL Server (eine große 8-Core-Box) und 1 Slave. Slave ist schreibgeschützt für Statistiken und Berichte.
  • Über 30 Prozesse für die Bearbeitung von Gelegenheitsjobs.
  • 8 Sun X4100s.
  • Verarbeiten Sie eine Anfrage in 200 Millisekunden in Rails.
  • Die durchschnittliche Zeit in der Datenbank beträgt 50-100 Millisekunden.
  • Über 16 GB Memcached.
Peter K.
quelle
2
Ein Schritt näher an den Quellen für den Fall, dass der Blog-Beitrag ausfällt
Chinoto Vokro
@ChinotoVokro Fügte auch Ihren Link zur Antwort hinzu. Vielen Dank!
Peter K.
1
@user :-D Ja, es ist jetzt ziemlich historisch. Es war damals jedoch eine nützliche Antwort für mich! :-)
Peter K.
13

Wenn ich zur Systemsteuerung meines Webhosts gehe, phpMyAdmin öffne und auf "MySQL-Laufzeitinformationen anzeigen" klicke, wird Folgendes angezeigt:

Dieser MySQL-Server läuft seit 53 Tagen, 15 Stunden, 28 Minuten und 53 Sekunden. Es begann am 24. Oktober 2008 um 04:03 Uhr.

Abfragestatistik: Seit dem Start wurden 3.444.378.344 Abfragen an den Server gesendet.

Insgesamt 3.444 M
pro Stunde 2,68 M
pro Minute 44,59 k
pro Sekunde 743,13

Das sind durchschnittlich 743 mySQL-Abfragen pro Sekunde in den letzten 53 Tagen!

Ich weiß nichts über dich, aber für mich ist das schnell! Sehr schnell!!

lkessler
quelle
Nicht sicher. Zu dieser Zeit war ich bei IXWebhosting und sie verwendeten ein Windows 32-Bit-Betriebssystem für ihre gemeinsam genutzten Server. Ich vermute, dass der mySQL-Datenbankserver ein separater dedizierter Computer war, aber ich weiß es nicht genau.
lkessler
3
Ich wette, diese Zahl ist eine Summe aller Treffer auf diesen bestimmten MySQL-Server und nicht nur Ihre Instanz - obwohl ich mich irren kann
warren
@ Warren: Ja, ich habe angenommen, es war der gesamte Server. Es ist jedoch sehr beeindruckend zu wissen, worum es bei der Verarbeitung einer SQL-Abfrage geht, und es ist sehr beeindruckend, so viele Sekunden zu verarbeiten ... und das ist nur der Durchschnitt, nicht die Spitzenlast.
lkessler
11

Ich persönlich mag es, wenn beide Analysen jedes Mal durchgeführt werden ... Anfragen / Sekunde und durchschnittliche Zeit / Anfrage und ich liebe es, zusätzlich die maximale Anforderungszeit zu sehen. Wenn Sie 61 Anfragen / Sekunde haben, können Sie diese einfach umdrehen. Sie können sie dann einfach auf 1000 ms / 61 Anfragen umdrehen.

Um Ihre Frage zu beantworten, haben wir selbst einen großen Auslastungstest durchgeführt und festgestellt, dass dieser auf verschiedenen von uns verwendeten Amazon-Hardware (der beste Wert war die mittlere 32-Bit-CPU, wenn es um $$ / Ereignis / Sekunde ging) und unseren Anforderungen / Sekunden reicht reichte von 29 Anfragen / Sekunde / Knoten bis zu 150 Anfragen / Sekunde / Knoten.

Bessere Hardware liefert natürlich bessere Ergebnisse, aber nicht den besten ROI. Wie auch immer, dieser Beitrag war großartig, da ich nach Parallelen gesucht habe, um zu sehen, ob meine Nummern im Stadion waren, und meine auch geteilt habe, falls jemand anderes sucht. Meins ist rein geladen, so hoch ich kann.

HINWEIS: Dank Anfragen / zweiter Analyse (nicht ms / Anfrage) haben wir ein großes Linux-Problem gefunden, das wir zu beheben versuchen, bei dem Linux (wir haben einen Server in C und Java getestet) alle Aufrufe in Socket-Bibliotheken einfriert, wenn es zu stark belastet ist das scheint sehr seltsam. Den vollständigen Beitrag finden Sie hier .... http://ubuntuforums.org/showthread.php?p=11202389

Wir versuchen immer noch, das zu beheben, da dies zu einer enormen Leistungssteigerung führt, da unser Test von 2 Minuten 42 Sekunden auf 1 Minute 35 Sekunden geht, wenn dies behoben ist, sodass wir eine Leistungsverbesserung von 33% sehen ... ganz zu schweigen davon, Je schlimmer der DoS-Angriff ist, desto länger dauern diese Pausen, sodass alle CPUs auf Null fallen und die Verarbeitung stoppen. Meiner Meinung nach sollte die Serververarbeitung angesichts eines DoS fortgesetzt werden, aber aus irgendeinem Grund friert sie von Zeit zu Zeit ein während der Dos manchmal bis zu 30 Sekunden !!!

ZUSÄTZLICH: Wir haben herausgefunden, dass es sich tatsächlich um einen Fehler in der JDK-Race-Bedingung handelt. Es ist schwierig, ihn in großen Clustern zu isolieren. Wenn wir jedoch 1 Server 1 Datenknoten, aber 10 davon ausgeführt haben, konnten wir ihn jedes Mal reproduzieren und haben uns nur den Server angesehen / datanode ist am aufgetreten. Durch das Umschalten des JDK auf eine frühere Version wurde das Problem behoben. Wir waren auf jdk1.6.0_26, glaube ich.

Dean Hiller
quelle
4

Das ist eine sehr offene Frage von Äpfeln zu Orangen.

Sie fragen 1. die durchschnittliche Anforderungslast für eine Produktionsanwendung 2. was als schnell angesehen wird

Diese beziehen sich nicht unbedingt.

Ihre durchschnittliche Anzahl von Anfragen pro Sekunde wird bestimmt durch

ein. die Anzahl der gleichzeitigen Benutzer

b. Die durchschnittliche Anzahl der Seitenanforderungen, die sie pro Sekunde stellen

c. die Anzahl der zusätzlichen Anfragen (z. B. Ajax-Anrufe usw.)

Was als schnell angesehen wird, meinen Sie damit, wie wenige Anfragen eine Site annehmen kann? Oder wenn eine Hardware als schnell angesehen wird, wenn sie xyz Anzahl von Anforderungen pro Sekunde verarbeiten kann?

DaveJustDave
quelle
1

Beachten Sie, dass Trefferquotendiagramme sinusförmige Muster mit Spitzenzeiten sind, die möglicherweise das Zweifache oder Dreifache der Rate betragen, die Sie erhalten, wenn Benutzer schlafen. (Kann nützlich sein, wenn Sie die tägliche Stapelverarbeitung auf Servern planen.)

Sie können den Effekt sogar auf "internationalen" (mehrsprachigen, lokalisierten) Websites wie Wikipedia sehen

ABl
quelle
1

Normalerweise weniger als 2 Sekunden pro Benutzer - dh Benutzer, die langsamere Antworten als diese sehen, denken, dass das System langsam ist.

Jetzt sagst du mir, wie viele Benutzer du verbunden hast.

gbjbaanb
quelle
1

Sie können in der "Slashdot-Effekt-Analyse" nach Grafiken suchen, die Sie sehen würden, wenn ein Aspekt der Website plötzlich in den Nachrichten populär würde, z. B. diese Grafik im Wiki .

Überlebende Webanwendungen können in der Regel statische Seiten generieren, anstatt jede Anforderung einer Verarbeitungssprache zu unterziehen.

Es gab ein exzellentes Video (ich denke, es könnte auf ted.com gewesen sein? Ich glaube, es könnte von einem flickr-Webteam stammen? Kennt jemand den Link?) Mit Ideen, wie Websites über den einzelnen Server hinaus skaliert werden können, z Weisen Sie Verbindungen zwischen der Mischung aus schreibgeschützten und schreibgeschützten Servern zu, um die beste Wirkung für verschiedene Benutzertypen zu erzielen.

ABl
quelle