Konfigurieren von Azure Load Testing für hochskalende Last

In diesem Artikel erfahren Sie, wie Sie Ihren Auslastungstest für hohe Skalierung mit Azure Load Testing konfigurieren. Azure Load Testing abstrahiert die Komplexität der Bereitstellung der Infrastruktur für die Simulation von datenverkehrsstarkem Umfang. Um einen Auslastungstest zu skalieren, können Sie die Anzahl der parallelen Testmodulinstanzen konfigurieren. Um eine optimale Lastenverteilung zu erreichen, können Sie die Testinstanzintegritätsmetriken im Azure Load Testing-Dashboard überwachen.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Wenn Sie kein Azure-Abonnement haben, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

  • Eine vorhandene Azure-Auslastungstestressource. Informationen zum Erstellen einer Azure-Lasttestressource finden Sie in der Schnellstartanleitung zum Erstellen und Ausführen eines Auslastungstests.

Konfigurieren von Ladeparametern für einen Auslastungstest

Um den Benutzerdatenverkehr für Ihre Anwendung zu simulieren, können Sie das Lademuster und die Anzahl der virtuellen Benutzer konfigurieren, für die Sie die Last simulieren möchten. Wenn Sie den Auslastungstest über viele parallele Testmodulinstanzen ausführen, kann Azure Load Testing die Anzahl der virtuellen Benutzer skalieren, die Datenverkehr für Ihre Anwendung simulieren. Das Lademuster bestimmt, wie die Last über die Dauer des Auslastungstests verteilt wird. Beispiele für Lastmuster sind lineare, gestufte oder Spitzenlasten.

Je nach Typ des Auslastungstests, URL-basierten oder JMeter-basierten, haben Sie unterschiedliche Optionen zum Konfigurieren der Ziellast und des Lademusters. In der folgenden Tabelle sind die Unterschiede zwischen den beiden Testtypen aufgeführt.

Testtyp Anzahl der virtuellen Benutzer Auslastungsmuster
URL-basiert (einfach) Geben Sie die Zielanzahl virtueller Benutzer in der Auslastungstestkonfiguration an. Lineares Lademuster basierend auf der Ramp-up-Zeit und der Anzahl der virtuellen Benutzer.
URL-basiert (erweitert) Geben Sie die Anzahl der Testmodule und die Anzahl der virtuellen Benutzer pro Instanz in der Auslastungstestkonfiguration an. Konfigurieren Des Lademusters (linear, Schritt, Spitzen).
JMeter-basiert Geben Sie die Anzahl der Testmodule in der Auslastungstestkonfiguration an. Geben Sie die Anzahl der virtuellen Benutzer im Testskript an. Konfigurieren Sie das Lademuster im Testskript.

Konfigurieren von Ladeparametern für URL-basierte Tests

So geben Sie die Ladeparameter für einen URL-basierten Ladetest an:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Load Testing-Ressource.

  2. Wählen Sie im linken Navigationsbereich Tests aus, um alle Tests anzuzeigen.

  3. Wählen Sie in der Liste Ihren Auslastungstest und dann Bearbeiten aus.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Alternativ können Sie die Testkonfiguration auch über die Testdetailseite bearbeiten. Wählen Sie dazu Konfigurieren und dann Testen aus.

  4. Wählen Sie auf der Seite "Grundlagen " die Option "Erweiterte Einstellungen aktivieren" aus.

  5. Wählen Sie auf der Seite "Test bearbeiten" die Registerkarte "Laden " aus.

    Bei URL-basierten Tests können Sie die Anzahl der parallelen Testmodulinstanzen und das Lademuster konfigurieren.

  6. Verwenden Sie das Schiebereglersteuerelement "Modulinstanzen ", um die Anzahl der parallelen Testmodulinstanzen zu aktualisieren. Geben Sie alternativ den Zielwert in das Eingabefeld ein.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  7. Wählen Sie den Wert " Load pattern " aus der Liste aus.

    Füllen Sie für jedes Muster die entsprechenden Konfigurationseinstellungen aus. Das Diagramm gibt eine visuelle Darstellung des Lademusters und seiner Konfigurationsparameter.

    Screenshot of the 'Load' tab when editing a load test, showing how to configure the load pattern.

Konfigurieren von Ladeparametern für JMeter-basierte Tests

So geben Sie die Ladeparameter für einen JMeter-basierten Auslastungstest an:

  1. Navigieren Sie im Azure-Portal zu Ihrer Azure Load Testing-Ressource.

  2. Wählen Sie im linken Navigationsbereich Tests aus, um alle Tests anzuzeigen.

  3. Wählen Sie in der Liste Ihren Auslastungstest und dann Bearbeiten aus.

    Screenshot that shows the list of load tests and the 'Edit' button.

    Alternativ können Sie die Testkonfiguration auch über die Testdetailseite bearbeiten. Wählen Sie dazu Konfigurieren und dann Testen aus.

  4. Wählen Sie auf der Seite Test bearbeiten die Registerkarte Laden aus. Verwenden Sie das Schieberegler-Steuerelement Engine-Instanzen, um die Anzahl der Test-Engine-Instanzen zu aktualisieren, oder geben Sie den Wert direkt in das Eingabefeld ein.

    Screenshot of the 'Load' tab on the 'Edit test' pane.

  5. Wählen Sie Anwenden aus, um den Test zu ändern und die neue Konfiguration bei der erneuten Ausführung anzuwenden.

Überwachen von Engine-Instanzmetriken

Um sicherzustellen, dass die Testmodulinstanzen selbst kein Leistungsengpässe sind, können Sie Ressourcenmetriken der Testmodulinstanz überwachen. Eine hohe Ressourcennutzung für eine Testinstanz kann die Ergebnisse des Auslastungstests negativ beeinflussen.

Azure Load Testing meldet vier Ressourcenmetriken für jede Instanz:

  • CPU-Prozentsatz.
  • Arbeitsspeicherprozentsatz.
  • Netzwerkbytes pro Sekunde.
  • Anzahl der virtuellen Benutzer.

Eine Testmodulinstanz gilt als gesund, wenn der durchschnittliche CPU-Prozentsatz oder der Arbeitsspeicheranteil über die Dauer des Testlaufs unter 75 % bleibt.

So zeigen Sie die Ressourcenmetriken des Moduls an:

  1. Navigieren Sie zu Ihrer Auslastungstestressource. Wählen Sie im linken Bereich Tests aus, um die Liste der Auslastungstests anzuzeigen.

  2. Wählen Sie in der Liste den Auslastungstest aus, um die Liste der Testausführungen anzuzeigen.

  3. Wählen Sie in der Testlaufliste Ihre Testausführung aus.

  4. Wählen Sie im Testlaufdashboard die Engine-Integrität aus, um die Ressourcenmetriken des Moduls anzuzeigen.

    Wählen Sie optional eine bestimmte Testmodulinstanz mithilfe der Filtersteuerelemente aus.

Screenshot that shows the load engine health metrics on the test run dashboard.

Problembehandlung bei ungesunden Engine-Instanzen

Wenn eine oder mehrere Instanzen eine hohe Ressourcenauslastung aufweisen, kann sie sich auf die Testergebnisse auswirken. Dieses Problem lässt sich ggf. mit einem der folgenden Schritte beheben:

  • Reduzieren Sie die Anzahl der Threads (virtuelle Benutzer) pro Testmodul. Um eine Zielanzahl virtueller Benutzer zu erreichen, können Sie die Anzahl der Modulinstanzen für den Auslastungstest erhöhen.

  • Stellen Sie sicher, dass Ihr Skript wirksam ist, ohne redundanten Code.

  • Wenn der Integritätsstatus des Moduls unbekannt ist, führen Sie den Test erneut aus.

Bestimmen von Anforderungen pro Sekunde

Die maximale Anzahl von Anforderungen pro Sekunde (Requests per Second, RPS), die Azure Load Testing generieren kann, hängt von der Latenz der Anwendung und der Anzahl der virtuellen Benutzer (Virtual Users, VUs) ab. Die Anwendungslatenz entspricht der Gesamtzeit zwischen dem Senden einer Anwendungsanforderung durch das Testsystem und dem Empfang der Antwort. Die Anzahl der virtuellen Benutzer ist die Anzahl paralleler Anforderungen, die Azure Load Testing zu einem bestimmten Zeitpunkt ausführt.

Um die Anzahl der Anforderungen pro Sekunde zu berechnen, wenden Sie die folgende Formel an: RPS = (# von VUs) * (1/Latenz in Sekunden).

Wenn die Anwendungslatenz beispielsweise 20 Millisekunden (0,02 Sekunden) beträgt und Sie eine Last von 2.000 VUs generieren, können Sie ungefähr 100.000 RPS erreichen (2.000 × 1/0,02 s).

Um eine Zielanzahl von Anforderungen pro Sekunde zu erreichen, konfigurieren Sie die Gesamtzahl der virtuellen Benutzer für Ihren Auslastungstest.

Hinweis

Apache JMeter meldet nur Anforderungen, die an den Server und zurück gesendet wurden, entweder erfolgreich oder nicht erfolgreich. Wenn Apache JMeter keine Verbindung mit Ihrer Anwendung herstellen kann, liegt die tatsächliche Anzahl von Anforderungen pro Sekunde unter dem Maximalwert. Mögliche Ursachen können sein, dass der Server zu ausgelastet ist, um die Anforderung zu verarbeiten, oder dass ein TLS/SSL-Zertifikat fehlt. Um Verbindungsprobleme zu diagnostizieren, können Sie das Diagramm Fehler im Auslastungstestdashboard überprüfen und die Auslastungstest-Protokolldateien herunterladen.

Testen von Modulinstanzen und virtuellen Benutzern

Im Apache JMeter-Skript definieren Sie die Anzahl paralleler Threads. Jeder Thread stellt einen virtuellen Benutzer dar, der auf den Anwendungsendpunkt zugreift. Es wird empfohlen, die Anzahl der Threads unter einem Maximalwert von 250 Threads zu halten.

In Azure Load Testing sind Testmodulinstanzen für die Ausführung des Apache JMeter-Skripts verantwortlich. Die Instanzen der Test-Engine werden parallel ausgeführt. Sie können die Anzahl der Instanzen für einen Auslastungstest konfigurieren.

Die Gesamtzahl der virtuellen Benutzer für einen Auslastungstest ist dann: VUs = (# Threads) * (# Testmodulinstanzen).

Um eine Zielanzahl virtueller Benutzer zu simulieren, können Sie die parallelen Threads im JMeter-Skript und die Modulinstanzen für den Auslastungstest entsprechend konfigurieren. Überwachen Sie die Testmodulmetriken, um die Anzahl der Instanzen zu optimieren.

Um beispielsweise 1.000 Threads (oder virtuelle Benutzer) zu simulieren, legen Sie die Anzahl der Threads im Apache JMeter-Skript auf 250 fest. Konfigurieren Sie den Test dann mit vier Test-Engine-Instanzen (also 4 x 250 Threads).

Der Standort der Azure Load Testing-Ressource bestimmt den Standort der Test-Engine-Instanzen. Alle Test-Engine-Instanzen innerhalb einer Load Testing-Ressource werden in derselben Azure-Region gehostet.