Dies ist sehr häufig festzustecken, nachdem ein Szenario und Testfälle erstellt wurden, müssen wir mit JMeter ausführen und den Wert festlegen, wie viele Benutzer oder Threads im JMeter-Thread-Gruppe zulässig sind. Wir möchten weder unseren Lastgenerator noch unsere JMeter-Instanz drosseln. Grundsätzlich ist in beiden Fällen eine Anpassung erforderlich. Andernfalls wird der Testausgang wertlos sein und wir werden Stunden unserer Zeit verlieren. Hier sind also die Dinge, die wir berücksichtigen müssen:-
- JMeter ist ein Java-Tool, das mit JVM ausgeführt wird. Um maximale Leistung zu erzielen, müssen wir JMeter während der Ausführung maximale Ressourcen zur Verfügung stellen. Zuerst müssen wir die Heap-Größe erhöhen (Im JMeter bin-Verzeichnis erhalten wir jmeter.bat/sh)
HEAP=-Xms512m –Xmx512m
Dies bedeutet, dass die standardmäßig zugewiesene Heap-Größe minimal 512 MB und maximal 512 MB beträgt. Konfigurieren Sie es entsprechend Ihrer eigenen PC-Konfiguration. Denken Sie daran, dass das Betriebssystem auch eine gewisse Menge an Speicher benötigt, also weisen Sie nicht allen Ihres physischen RAMs zu.
- Fügen Sie dann die Speicherzuweisungsrate hinzu
NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
Dies bedeutet, dass der Speicher mit diesem Satzrate erhöht wird. Sie sollten vorsichtig sein, denn wenn Ihre Lastgenerierung am Anfang sehr hoch ist, könnte dies zunehmen. Denken Sie daran, dass Ihr Heap-Speicherplatz innerhalb der JVM fragmentiert wird, wenn der Bereich zu breit ist. In diesem Fall muss der Garbage Collector härter arbeiten, um aufzuräumen.
-
JMeter ist eine Java-GUI-Anwendung. Es hat auch die Non-GUI-Edition, die weniger ressourcenintensiv (CPU/RAM) ist. Wenn wir JMeter im Non-GUI-Modus ausführen, verbraucht es weniger Ressourcen und wir können mehr Threads ausführen.
-
Alle Listener deaktivieren: Während des Testlaufs. Sie dienen nur zur Fehlerbehebung und zur Gestaltung Ihres gewünschten Skripts.
Listener sollten während der Lasttests deaktiviert werden. Wenn sie aktiviert sind, verursachen sie zusätzliche Overheads, die wertvolle Ressourcen verbrauchen, die von wichtigeren Elementen Ihres Tests benötigt werden.
-
Versuchen Sie immer, die Aktualisierte Software zu verwenden. Halten Sie Ihr Java und JMeter aktuell.
-
Vergessen Sie nicht, dass Speichern von Anfragen und Antwortkopfzeilen, Ergebnisse von Assertions und Antwortdaten viel Speicher verbrauchen können! Versuchen Sie also nicht, diese Werte auf JMeter zu speichern, es sei denn, es ist unbedingt erforderlich.
Zusammenfassend, wenn in JMeter-Skript keine Listener enthalten sind, kein Monitoring innerhalb des laufenden JMeter-Servers, keine Netzwerküberlastung/Hindernisse vorhanden sind und JMeter-Skripts optimiert sind, dann erfolgt hier eine grobe Berechnung:
Die Gesamtanzahl gleichzeitiger Benutzer = (gesamter zuweisbarer Speicher)/(Größe aller Anfragen)
Schätzen Sie Ihre gleichzeitige Anzahl von Benutzern/Threads (aktive Threads) nur im Hinblick auf Ihr Lastszenario.
Außerdem müssen Sie überwachen, ob Ihr Server Speicherverbrauch
, CPU-Auslastungen
unter 80 % liegen oder nicht. Wenn diese Auslastungen über 80% hinausgehen, betrachten Sie diese Tests als unzuverlässig als Bericht.
Zur besseren und ausführlicheren Verständnis müssen diese beiden Blogs Wie viele Benutzer kann JMeter unterstützen? und 9 einfache Lösungen für ein JMeter Load-Test "Out of Memory" Fehler helfen.