
- Ich habe eine Spring-Anwendung in App Engine B2 erstellt. In den Protokollen kann ich sehen, dass die Anwendung 1 Sekunde braucht, um die Datenfilterung abzuschließen (nach dem Aufwecken der Anwendung). Auf meinem lokalen Computer dauert es 10 ms.
- Die Datengröße ist wirklich klein und die Logik ist nicht so komplex, es ist erst der Anfang des Projekts.
Meine Frage ist also, ob es möglich ist, dass meiner App Engine-Instanz Ressourcen oder so etwas fehlen. Vielleicht fehlen mir einige Konfigurationen oder JAVA-OPTIONEN, weil ich jetzt die Standardeinstellung verwende. Vielleicht hatte jemand schon einmal ähnliche Leistungsprobleme.
Aktualisieren. Ich habe erneut versucht, B1 B2 B3 B4-Instanzen zu verwenden. Dasselbe Ergebnis. Es fühlt sich an, als ob die Anwendungen wirklich nur über sehr wenige Ressourcen verfügen.
Problem gelöst, als ich die Compute Engine VM erstellt habe. In der virtuellen Maschine habe ich ein Docker-Image mit derselben Anwendung laufen. Und jetzt funktioniert es einwandfrei. Die Antworten sind großartig.
Ich würde gerne App Engine verwenden, kann aber immer noch nicht herausfinden, woran das liegt. Ich verwende alle Standardeinstellungen von app.yaml aus den Google-Tutorials ohne zusätzliche Optionen.
Aktualisierung 2. Ich habe versucht, die App Engine Flex-Umgebung mit verschiedenen Optionen zu verwenden. Immer noch dasselbe Ergebnis. Vielleicht sehe ich einen Unterschied, wenn ich dieselbe API mehrmals aufrufe, anstatt einer 30-sekündigen Antwort erhalte ich 28 25. Meine Schlussfolgerung ist also, dass die App Engine (nach meinem Verständnis) nicht für die Arbeit mit komplexen CPU-Spitzenoperationen (FILTER, SORT ENTITY) in JAVA geeignet ist. Auf Compute Engine funktioniert meine Lösung einwandfrei. Dann habe ich es auf GKE versucht und dort funktioniert es auch perfekt, ab 30 s (ohne Start-Overhead) verringerte sich die Antwort auf 200 ms. In GCE oder GKE verwende ich die VM mit dem niedrigsten Ressourcenrang.
Antwort1
Durch die Änderung der Instanzklasse in eine noch effizientere für Rechenoperationen (wie z.B. eine Instanzklasse vonB4, mit einem höheren CPU-Limit, in Ihrem Fall) würde Ihre Anwendung in dieser Hinsicht zwar schneller machen, aber es wird jedochkostet mehr.
Bevor Sie Ihre Instanzklasse aktualisieren, empfehlen wir Ihnen, sicherzustellen, dass die Geschwindigkeit Ihrer Anwendung nicht programmgesteuert verbessert werden kann, da sich der Preis in diesem Fall wahrscheinlich verdoppeln würde.