2017-06-14 2 views
0

Ich habe vor kurzem gatling.io zum Testen meiner API-Server verwendet. Während des Tests gab es Optionen, um beispielsweise die Anzahl der gleichzeitigen Benutzer pro Sekunde festzulegen.Wie funktionieren Last- und Leistungstests hinter den Kulissen?

Was ich nicht verstehe, ist, wie diese Werkzeuge diese Last erzeugen können. Wie sind sie in der Lage zu schaffen, sagen wir 200 gleichzeitige Verbindung zu meinem Server und treffen Sie es?

Ich bin auf der Suche nach einer Antwort beschreiben, wie es implementiert ist, ob sie Thread, Socket-Programmierung etc. verwenden. Danke.

Antwort

2

Gatling verwendet intern die Akka framework, in der jeder virtuelle Benutzer als Akka actor dargestellt wird.

Akka ist ein Framework für asynchrone Ausführung. Das bedeutet, dass wir den Thread, der auf die Antwort wartet, nicht verschwenden und aussetzen, sondern ihn für andere Aufgaben verwenden - in diesem Fall für andere virtuelle Benutzer. Der Zeitpunkt der Ausführung wird durch die scheduler und Ausführung selbst durch die in einigen Umgebungen ein einziger JVM-Thread Unter Berücksichtigung dispatcher

verwalteten Stapel können so groß wie 2 Mb oder sogar größer für jede der 500 Benutzer Erstellen ein Threads kosten würde etwa 1 GB Speicher nur für die Threads. Siehe here for more information darüber, warum viele Threads erstellen eine schlechte Idee ist.

Abschließend ist es wichtig, asynchrone Programmierung zu verwenden, um einen so hohen Durchsatz von gleichzeitigen virtuellen Benutzern zu erreichen.

Verwandte Themen