2016-10-29 2 views
1

Ich habe Probleme mit jMeter, um meine .NET Web App zu testen. Ich verwende jMeter lokal gegen eine Staging-Umgebung in Azure für meine App. Schlagen einige Endpunkte, die ich erhalten:Apache jMeter Fehler mit hohen Ladeanforderungen - java.net.ConnectException: Zeitüberschreitung der Verbindung: connect

java.net.ConnectException: Connection timed out: connect 

Was mir sagt, es ist etwas an meinem Ende passiert, nicht durch meine Anwendung verursacht. Meine App zeigt keine Fehler und bedient Anfragen in dieser Größenordnung mit Leichtigkeit.

In diesem speziellen Test habe ich 300 Threads mit einem Hochlauf von 10 Sekunden, dreimal wiederholt.

Was kann ich tun, um weiter zu diagnostizieren? Gibt es eine Art Grenze, die auf der Client-Seite auferlegt wird?

+0

1. Können Sie 1, 10, 100 Threads erfolgreich ausführen, bevor Sie 300 ausführen? 2. Tritt dieser Fehler bei allen Anfragen oder nur bei einigen auf? –

+0

@ KirilS.yes, ja, ja. Nur etwas. – SB2055

+1

In diesem Fall ist es möglich, dass der Test die verfügbaren Ports erschöpft, was dazu führt, dass der Client auf den Port wartet und manchmal ein Zeitlimit auftritt. Sie können dies bestätigen, indem Sie 150 + 150 Clients von 2 JMeter-Hosts ausführen. Wenn das funktioniert, ist es noch wahrscheinlicher. Wenn Sie auf Windows sind, beginnen Sie mit den Registrierungsänderungen, die dieser Artikel vorschlägt (insbesondere im Zusammenhang mit TIME_WAIT): https://msdn.microsoft.com/en-us/library/aa560610(v=bts.20).aspx (es ist über BizTalk, aber wirklich gilt es für jede andere Port Erschöpfung). Unter Linux wird ein ähnlicher Prozess hier beschrieben: http://www.lognormal.com/blog/2012/09/27/linux-tcpip-tuning/. –

Antwort

1

Die JMeter-Standardkonfiguration eignet sich nicht für hohe Lasten, Sie können sie nur für die Testentwicklung und das Debuggen verwenden. Wenn es darum geht, den Lasttest auszuführen, müssen Sie mindestens Java Heap Space erhöhen, die JMeter zugewiesen sind (standardmäßig sind es nur 512 MB. Ich glaube, der Browser, den Sie zum Lesen dieser Seite verwenden, verbraucht doppelt so viel).

Sie sollten auch Ihren Test in non-GUI mode ausführen, da JMeter GUI nicht entworfen ist, um Informationen korrekt anzuzeigen, wenn mehr oder weniger immense Last erzeugt wird, können Sie es bis ~ 50 Threads vielleicht verwenden.

Weitere Informationen:


Ich würde auch vorschlagen, ein Auge auf Ihre Lastgenerator Gesundheit während des Tests und sammeln Informationen über CPU, RAM zu halten, Swap-, Disk-, Netzwerk-Nutzung sowie einige JVM-Metriken wie Heap-Nutzung, Garbage-Collections, etc. damit Sie sehen können, ob Ihr JMeter instanc e ist gut genug konfiguriert, wenn genügend Headroom w.r.t. Hadrware-Ressourcen, etc. Natürlich ist es auf der Serverseite ein Muss. Sie können PerfMon JMeter Plugin verwenden, um diese Informationen zu sammeln und Ergebnisse zusammen mit anderen Testmetriken zu plotten, sodass Sie die Werte korrelieren und die Ursache identifizieren können. Siehe How to Monitor Your Server Health & Performance During a JMeter Load Test für Plugin-Konfiguration und Gebrauchsanweisungen

Verwandte Themen