Was kann in App Engine-Anfragen zu einer hohen Variabilität der Nicht-Laufzeit führen?

9

Ich habe gerade einen Belastungstest gegen meine App durchgeführt. Ich bemerkte eine sehr große Variabilität in der Latenz für zwei identische Anfragen: 3 s vs. 30 s. Als ich auf die Spuren stieß, fand ich Folgendes:

%Vor%

Hier sind Screenshots für die Spuren:

Niedrige Gesamtlatenz

Hohe Gesamtlatenz

Ich kann keinen 10-zu-1-Unterschied in der Laufzeitleistung ausmachen.

Ich sehe diese Anfragen mit hoher Latenz nur unter Last. Könnte etwas in meinem Code diese Variabilität berücksichtigen (unter der Annahme, dass für beide Anforderungen derselbe Pfad durch den Code verwendet wurde)?

    
Zachary Young 18.05.2016, 18:26
quelle

2 Antworten

1

Nach meiner Erfahrung werden diese außergewöhnlich hohen Latenzzeiten durch eine neue Instanz verursacht. In der AppEngine Google Group gab es eine Diskussion über ähnliche Probleme: Ссылка

Zwei Dinge, die Sie tun können:

  1. Reduzieren Sie die Zeit, die eine Instanz benötigt, um zu beginnen, indem Sie die Gesamtgröße Ihrer Anwendung (Code, Bibliotheken, Assets) reduzieren und die faule Initialisierung intensiv nutzen. Die Verwendung einer höheren Instanzklasse könnte ebenfalls hilfreich sein (stärkere Instanzen werden schneller hochgefahren)
  2. Optimieren Sie Ihre Skalierungsoptionen: Lassen Sie immer eine (oder zwei) freie Instanzen herumlaufen, so dass Sie nicht darauf warten müssen, dass eine Instanz während Verkehrsspitzen hochfährt

Ich hoffe, das hilft. In meinem Fall hat die Verwendung einer höheren Instanzklasse schon viel geholfen!

    
TomTasche 13.10.2016 18:02
quelle
0

Ich hatte dieses Problem auch, Google unterstützt vorgeschlagen, max_concurrent_requests zu reduzieren. Die Hypothese zu dieser Zeit war, dass die CPU gedrosselt wurde. Nach der Reduzierung wurde die Latenz im Allgemeinen besser. Ich war mir immer noch nicht sicher, was passiert, weil ich nicht erwartet hatte, dass die Anwendung so viel CPU verbraucht. Leider kein Werkzeug, um die CPU auf GAE zu profilieren, wo genau der CPU-intensive Teil liegt

    
marcadian 22.10.2016 00:45
quelle