Konzepte und Methoden für Server-Stresstests (TPS/Parallelität)

Konzepte und Methoden für Server-Stresstests (TPS/Parallelität)

1 Indikatoren im Stresstest

1,1 TPS

TPS ist die Abkürzung für „Transactions Per Second“ (Transaktionen pro Sekunde) und bezieht sich auf die Anzahl der pro Sekunde verarbeiteten Transaktionen. Eine Transaktion ist ein Vorgang, bei dem ein Client eine Anfrage an einen Server sendet und der Server antwortet (vollständige Verarbeitung, d. h. der Client initiiert die Anfrage, um eine Antwort zu erhalten). Der Client startet die Zeitmessung, wenn er eine Anfrage sendet, und beendet sie, nachdem er eine Antwort vom Server erhalten hat. Auf diese Weise werden die benötigte Zeit und die Anzahl der abgeschlossenen Transaktionen berechnet und diese Informationen werden letztendlich zur Erstellung eines Bewertungsergebnisses verwendet. Eine Transaktion kann mehreren Anfragen entsprechen. Bitte beachten Sie den Transaktionsvorgang der Datenbank.

1,2 Fragen pro Sekunde

QPS ist die Abkürzung für „Queries Per Second“ (Abfragen pro Sekunde). Damit ist die Anzahl der Abfragen gemeint, die pro Sekunde verarbeitet werden können (vollständige Verarbeitung, d. h. von der Initiierung einer Anforderung durch den Client bis zum Erhalt einer Antwort). Es handelt sich dabei um die Anzahl der Abfragen, die ein Server pro Sekunde beantworten kann, und um ein Maß dafür, wie viel Datenverkehr ein bestimmter Abfrageserver innerhalb einer bestimmten Zeit verarbeitet.

Aus dem vollständigen englischen Namen können wir schließen, dass es Abfrage bedeutet. Es stellt sich heraus, dass im Internet die Leistung von Maschinen, die als Domain Name System-Server dienen, oft anhand der Abfragerate pro Sekunde gemessen wird. Entspricht den Abrufen/Sek., also der Anzahl der Antwortanforderungen pro Sekunde. Obwohl es nominell Abfrage bedeutet, ist es in der Praxis mittlerweile üblich, die Verarbeitungskapazität eines einzelnen Schnittstellendienstes in QPS auszudrücken (auch wenn es sich nicht um einen Abfragevorgang handelt).

1.3 Durchschnittliche Bearbeitungszeit (RT)

RT: Antwortzeit, die durchschnittliche Verarbeitungszeit, die zum Bearbeiten einer Anfrage benötigt wird.

Außerdem orientieren wir uns grundsätzlich an der durchschnittlichen Bearbeitungszeit von 90% der Anfragen, da es netzwerkbedingt zu Extremsituationen kommen kann.

1.4 Anzahl gleichzeitiger Benutzer (Parallelität)

Die Anzahl der Benutzer, die pro Sekunde Anfragen an die zu testende Schnittstelle stellen.

1.5 Konvertierungsbeziehung

QPS = Anzahl gleichzeitiger Verbindungen/durchschnittliche Antwortzeit

Parallelität = QPS * durchschnittliche Antwortzeit

Beispielsweise greifen 3.000 Benutzer (Parallelität) gleichzeitig auf die zu testende Schnittstelle zu. Laut Statistiken der Benutzerseite beträgt die durchschnittliche Antwortzeit für 3.000 Benutzer 1188,538 ms. Also QPS = 3000/1,188538 s = 2524,11 q/s.

Wir können diesen Test wie folgt beschreiben: Bei 3000 gleichzeitigen Verbindungen beträgt die QPS 2524,11 und die durchschnittliche Antwortzeit 1188,538 ms

1.6 Unterschied zwischen TPS und QPS

Als ich diese Frage stellte, dachte ich, dass diese beiden dasselbe sein müssten, aber nachdem ich ihre englischen Namen auf Zhihu gesehen habe, denke ich jetzt:

„QPS“ bezeichnet die Anzahl der Abfragen, die pro Sekunde verarbeitet werden können. Heutzutage wird der Begriff im Allgemeinen jedoch auch verwendet, um die Anzahl der Anforderungen zu bezeichnen, die eine einzelne Dienstschnittstelle pro Sekunde verarbeiten kann.

TPS ist die Anzahl der pro Sekunde verarbeiteten Transaktionen. Wenn die Transaktion nur von einer einzigen Serviceschnittstelle abgeschlossen wird, können wir sie auch als QPS betrachten.

PS: Es gibt auch das Konzept RPS (Anfragen pro Sekunde). Die Anzahl der Anfragen pro Sekunde ähnelt unter bestimmten Bedingungen QPS und TPS.

2 Stresstestmethoden

Mithilfe von Stresstest-Tools können wir mehrere Benutzer simulieren und so das System einem Stresstest unterziehen. Später erfolgt eine Einführung in Stresstest-Tools.

Die Testmethode besteht darin, eine bestimmte Gesamtzahl von Anfragen unverändert zu lassen, die Parallelität schrittweise zu erhöhen und die Änderungen bei QPS und durchschnittlicher Antwortzeit zu beobachten.

Beispielsweise beträgt die Gesamtzahl der Anfragen 10.000, und dann wird der QPS-Wert mit einer Gleichzeitigkeit von 100 und dann 200, 300, 400, 500 usw. getestet.

Der Durchsatz eines Systems wird normalerweise durch zwei Faktoren bestimmt: TPS und Parallelität. Jedes System hat eine relative Grenze für diese beiden Werte. Unter dem Zugriffsdruck des Anwendungsszenarios wird der Durchsatz des Systems nicht erhöht, solange ein Element den Maximalwert des Systems erreicht. Wenn der Druck weiter zunimmt, wird der Durchsatz des Systems stattdessen verringert. Der Grund dafür ist, dass das System überlastet ist und anderer Verbrauch wie Kontextwechsel und Speicher zu einem Rückgang der Systemleistung führt. Hier ist ein Stresstestdiagramm mit dem AB-Tool.

Aus der Abbildung ist ersichtlich, dass bei einer Parallelität von 2000 die QPS etwa 2500 erreicht hat und die nachfolgende Erhöhung der Parallelität bei 2500 bleibt, was darauf hinweist, dass die QPS dieser Schnittstelle unter dieser Konfiguration 2500 beträgt, d. h. das System kann nur etwa 2500 Anfragen pro Sekunde verarbeiten. Die nachfolgende Erhöhung der Parallelität führt nur zu einer Erhöhung der durchschnittlichen Antwortzeit. (PS: Da pro Sekunde nur 2.500 Anfragen verarbeitet werden können und jeweils 7.000 Anfragen gleichzeitig vorliegen, kommt es natürlich zu einer Anhäufung von Anfragen, was zu einer längeren durchschnittlichen Antwortzeit führt.) Wir können sehen, dass nach Überschreiten von 14.000 sogar die QPS stark zu sinken beginnt, was darauf hinweist, dass das System überlastet ist und die Leistung stark abfällt. Generell glauben wir, dass eine durchschnittliche Antwortzeit, wenn sie einen bestimmten Wert erreicht, nicht mehr akzeptabel ist.

3 Zugehörige Dokumente

Blog zur Schätzung der gleichzeitigen Anzahl von IoT-Geräten:

https://www.jb51.net/article/231516.htm

Stresstest-Tool AB-Tool:

https://www.jb51.net/article/231502.htm

Ergebnisse des Stresstests des Node-Express-Frameworks:

https://www.jb51.net/article/231512.htm

Damit schließen wir diesen Artikel zu den Konzepten und Methoden von Server-Stresstests (TPS/Parallelität) ab. Ich hoffe, dass es für jedermanns Studium hilfreich sein wird, und ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden Sie das ab-Tool, um einen API-Stresstest auf dem Server durchzuführen
  • Verwenden Sie das Apache ab-Tool, um einen einfachen Stresstest auf dem Apache-Server durchzuführen
  • So konfigurieren Sie ab für Stresstests für den Nginx-Server

<<:  So erstellen Sie einen Flammeneffekt mit CSS

>>:  Floaten und Floaten löschen in der Übersichtsseite

Artikel empfehlen

Erklärung der MySQL-Indextypen Normal, Unique und Full Text

Zu den Indextypen von MySQL gehören Normalindex, ...

jQuery implementiert dynamische Tag-Ereignisse

In diesem Artikel wird der spezifische Code von j...

Farbschemata für Websites Die richtigen Farben für Ihre Website auswählen

Beeinflusst Farbe die Website-Besucher? Vor einig...

So installieren Sie Oracle auf Windows Server 2016

1. Installieren Sie Oracle. Im Internet gibt es z...

Lernen, React-Gerüste zu bauen

1. Komplexität des Front-End-Engineerings Wenn wi...

Eine kurze Diskussion zum CSS-Höhenkollapsproblem

Leistung Zum Beispiel: HTML: <div Klasse="...

CSS erzielt den „Bottom Absorption“-Effekt im Footer

Wir stoßen häufig auf dieses Problem: Wie kann ma...

Einige Referenzen zu Farben in HTML

In HTML werden Farben auf zwei Arten dargestellt. ...

Allgemeine Funktionen der MySQL-Grundlagen

Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...

Eine kurze Erläuterung des Lazy-Loading-Attributmusters in JavaScript

Inhaltsverzeichnis 1. Einleitung 2. On-Demand-Att...