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".
Der diesmal erstellte API-Server trifft auf die API des externen Dienstes innerhalb der API.
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.
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.
Akzeptiert dieselbe Anforderung wie eine normale externe API und gibt denselben Antworttyp zurück. ―― Zuallererst ist es natürlich, aber die Mindestanforderung besteht darin, sich genauso zu verhalten wie die externe API, die Sie tatsächlich verwenden.
Sie können die Antwortzeit angeben. ――Dies ist die praktische Funktion, die diesmal verwendet wird. Durch Anpassen der Antwortzeit ist es möglich, einige Leistungsmuster des externen Servers anzunehmen und einen Auslastungstest durchzuführen.
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"
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>
――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.
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