[PYTHON] Laden Sie die Testmethode, wenn Sie die externe Service-API verwenden

Letztes Mal habe ich über den Gesamtüberblick des Auslastungstests geschrieben, aber dieses Mal werde ich über den Auslastungstest der externen API schreiben, der zu diesem Zeitpunkt durchgeführt wurde. Dieser Artikel stammt aus dem vorherigen Artikel [Kenntnisse über Mindestlasttests, die beim ersten API-Server-Lasttest erworben wurden]: "Dies ist ein schwieriger Lasttest. Es verdient den Punkt "Ich treffe die API eines externen Dienstes".

Lastgetestete Serverkonfiguration

Der diesmal erstellte API-Server trifft auf die API des externen Dienstes innerhalb der API. スクリーンショット 2016-03-21 23.19.08.png

Dieses Mal war die Sundbox des externen Dienstes nicht vorhanden, sodass es nicht möglich war, einen Auslastungstest mit dem externen Dienst direkt durchzuführen. Darüber hinaus wurde dieser Mechanismus so konfiguriert, dass sich der externe Server beim ersten Mal authentifiziert und andere APIs erst nach Ablauf der Authentifizierung aufgerufen werden können. Wenn hier also ein Problem auftritt, kann ein neuer Benutzer es überhaupt behandeln. Es spielte eine so wichtige Rolle, dass es verschwand.

Zweck des Auslastungstests für externe Dienste

Wie zu testen

Wie eingangs erwähnt, war die Sundbox-Umgebung diesmal nicht in der API des externen Dienstes vorhanden, sodass während des Auslastungstests keine direkte Verbindung zum externen Dienst hergestellt werden konnte.

Aus diesem Grund haben wir einen Dummy-Server vorbereitet und dieses Mal beschlossen, einen Auslastungstest durchzuführen, indem wir eine Verbindung zum Dummy-Server herstellen. Dann, wie man mit einem Dummy-Server testet, aber dieses Mal habe ich dem Dummy-Server nur eine praktische Funktion hinzugefügt, und mit dieser Funktion konnte ich den Grad des Einflusses des externen Servers messen.

Dummy-Server-Bedingungen

Um ein Beispiel zu schreiben, kann die Antwortzeit gemäß dem Wert von X-Sleep </ b> im Header angepasst werden, wie unten gezeigt.

curl -d '{"user":"hoge"}' https://dummy-server.jp/test/api -H "Content-type: application/json" -H "X-Sleep: 2000"

Testmethode laden

  • Der normale Wert ist eine CPU-Auslastungsrate von 50% oder weniger. --Erstellen Sie ein Szenario mit nur APIs, die mit locasut mit externen APIs verknüpft sind, und wenden Sie eine Last an. --Messen Sie die Antwortzeit der Dummy-Server-API mit einer festen Anzahl von Mustern zwischen 100 ms und 3000 ms und messen Sie, wie sich die Antwortzeit der Dummy-Server-API darauf auswirkt.
  • Es ist besser, die zu messende Reaktionszeit abhängig von der eingestellten Zeit des Timeouts zu ändern. --Stellen Sie den Grenzwert an der Stelle ein, an der der Median instabil wird oder der 502-Fehler beginnt, und messen Sie die RPS- und CPU-Auslastung bis zu diesem Punkt.
  • Wenn der Median (Median) sofort hochspringt, ist es möglich, dass sich die Leistung aufgrund der Last verschlechtert hat.
スクリーンショット_2016-03-22_0_37_02.png

Testergebnisse

Unten finden Sie ein Beispiel für die Ergebnisse der Belastungstests.

Reaktionszeit RPS CPU auslastung
100ms 230 90%
200ms 220 80%
300ms 200 75%
400ms 200 72%
500ms 190 65%
600ms 185 60%
700ms 175 60%
800ms 170 55%
900ms 155 50%
1000ms 140 45%
1500ms 110 30%
2000ms 85 20%
3000ms 60 15%

Aus diesem Ergebnis ist ersichtlich, dass bei einer Antwortzeit von mehr als 1000 ms die CPU-Auslastung 50% überschreitet und sich die Leistung verschlechtert.

Der aus diesem Ergebnis abgeleitete Inhalt lautet: Wenn die durchschnittliche Antwortzeit des externen Servers etwa 1000 ms oder mehr beträgt, kann dies Auswirkungen auf den API-Server des Unternehmens haben. </ b>

Mögliche Maßnahmen gemäß den Belastungsprüfergebnissen

――Wenn Sie den Dienst aufrufen, können Sie die Antwortzeit der externen Server-API messen. Wenn die durchschnittliche Antwortzeit 1000 ms oder mehr beträgt, können Sie Maßnahmen ergreifen, z. B. die Anzahl der Server erhöhen und schnell entscheiden, die Leistung aufrechtzuerhalten.

  • Darüber hinaus können Sie die TimeOut-Zeiteinstellung beim Herstellen einer Verbindung mit der externen Service-API auswählen und anhand der obigen Ergebnisse beurteilen, ob ein erneuter Versuch usw. erforderlich ist.

schließlich

Dieses Mal habe ich mit diesem Ansatz getestet, aber ich denke, ich muss herausfinden, ob es einen anderen besseren Weg gibt. Wenn Sie jedoch einige Informationen als Nummer haben, anstatt nichts zu tun, fühlen Sie sich sicherer.

Recommended Posts