Ich und ein paar andere Entwickler haben einen AI-Wettbewerb. Grundsätzlich haben wir ein einfaches Brettspiel und wir haben jeweils KIs geschrieben, die auf unseren eigenen Webservices gehostet werden, um gegeneinander zu spielen.Ist Azure Throttling My WebApi?
Ich habe eine und läuft, das ist ein einfacher WebApi 2-basierter Dienst, der in Azure veröffentlicht wird. Meine Erwartung ist, dass es die meiste Zeit ruhig sein wird, und dann plötzlich, wenn ein Spiel beginnt, wird es sehr schnell 200-400 Anfragen bekommen (ein Spiel kann nur ein paar Sekunden dauern). Der Spieleserver und die KI kommunizieren mit normalen JSON POSTs.
Mein Problem ist, Azure scheint die Anforderungen zu drosseln. Die ersten paar Züge passieren sehr schnell und dann wird alles langsamer.
Ich frage mich, ob Azure denkt, dass es eine mögliche DOS-Attacke oder etwas ist. Es kann eine Sekunde dauern, um einen Schritt zurückzukommen, wenn die Dinge langsamer werden. Ein paar Punkte von Interesse:
- Dies passiert nie, wenn lokal gehostet wird.
- Es gibt keine Datenbank.
- Es passiert sogar mit einer einfachen Test-KI, die nur Teile zufällig bewegt (also keine Rechenlast)
- Es passiert, wenn der Spiel-Host auch auf Azure bereitgestellt wird (so sind es zwei Azure-Websites miteinander zu sprechen).
Also, wie kann ich das beheben? Gibt es eine Einstellung irgendwo, wo ich vermisse, wo ich Azure sagen kann, dass diese Art von Verhalten erwartet wird? Ich habe es derzeit als Shared Service, aber ich testete es als ein Basic-Dienst zuvor mit zwei Instanzen, und ich sah immer noch die Verlangsamung.
Welcher Azure-Plan ist das? – usr
Ich habe es sowohl als Shared als auch als Basic Plan ausprobiert. Beim Testen als Basic versuchte ich auch, die Instanznummer auf 2 zu setzen. Es schien nicht zu helfen. – Pharylon
Dieser Link kann für Sie von Nutzen sein: http://stackoverflow.com/questions/7849884/what-is-limiting-the-of-simultaneous-connections-my-asp-net-application-can-ma – Shay