Azure ASP.NET-Website-HTTP-Anfragen in die Warteschlange gestellt

Azure ASP.NET-Website-HTTP-Anfragen in die Warteschlange gestellt

Wir haben eine Website auf Azure bereitgestellt, die eine furchtbare Leistung aufweist. Bei steigender Belastung erhöhen sich die Reaktionszeiten auf ganze Minuten! Die CPU-Auslastung ist nicht einmal hoch, irgendwo im Bereich von 40 % (wir betreiben eine mittlere Instanz (S2)).

Nach langem Debuggen (ich hatte keine Ahnung, was die Ursache war) bin ich schließlich auf ein „FREB“-Protokoll gestoßen, in dem steht, dass die Anforderungen in die Warteschlange gestellt werden:

  1. AspNetStart Data1="GET", Data2="/profil/abrufen", Data3="" 13:48:44.279
  2. AspNetReqQueued 13:48:44.810
  3. Aus der Warteschlange entferntes AspNetReq 13:49:39.545
  4. AspNetAppDomainEnter Data1="/LM/W3SVC/xxxx/ROOT-1-xxxxx

Ich dachte, Azure-Instanzen wären standardmäßig „optimal“ konfiguriert, sodass ich mir keine Gedanken über das Einstellen von Dingen wie maxconnectionoder machen müsste maxConcurrentThreadsPerCPU. Die Site verwendet keine Datenbank, ruft aber zwei verschiedene REST-APIs auf, sodass ich dachte, dort würde es zu Warteschlangen kommen. Ich habe versucht, die webrequest.ServicePoint.ConnectionLimitEigenschaft zu überprüfen, aber ich erinnere mich, dass sie etwa 2 Millionen ausgab (oder möglicherweise die maximale Anzahl).

Da die CPU-Auslastung niedrig ist, startet Azure keine neue Instanz und ich glaube nicht, dass eine weitere Instanz helfen würde.

Grundsätzlich habe ich 2 Fragen:

  1. Was könnte die Ursache hierfür sein bzw. was sollte ich ändern?
  2. Wie kann ich das debuggen? Es gibt so viele Diagramme und Einstellungen in Azure. Ich bin nicht sicher, wo ich genau das sehen kann, was ich sehen muss. Ist die Bandbreite ein Engpass, die Anzahl der offenen Anfragen an einen bestimmten Webdienst, etwas anderes usw.

verwandte Informationen