Laden...

ASP.NET Core 5.0 lädt lokal in 50ms - auf Azure in 5sekunden

Erstellt von Peter Bucher vor 3 Jahren Letzter Beitrag vor 3 Jahren 543 Views
Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren
ASP.NET Core 5.0 lädt lokal in 50ms - auf Azure in 5sekunden

Hallo zusammen

Ich habe eine ASP.NET Core 5.0 App mit Azure AD Auth und Hangfire auf Azure deployed. Wie schon im Titel beschrieben, läuft die App lokal super und lädt die Startseite in ca. 50ms. Auf Azure 5, bis zu 8 Sekunden. Bei jedem Request.

Wie kann ich hier dem Problem auf die Spur kommen?
Application Insight ist leider auf Azure noch nicht verfügbar für ASP.NET Core 5.0.

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.827 Beiträge seit 2008
vor 3 Jahren

Application Insight ist leider auf Azure noch nicht verfügbar für ASP.NET Core 5.0.

Doch ist es; nur die Oberfläche des Portals für das Erstellen von AI über die Webapp nicht. Steht auch so über den grauen Elementen, wenn man hovert. Das Forum hier basiert auch auf ASP.NET 5 aktuell und verwendet problemlos AI mit Operation-based Logging. Siehe [Artikel] Die myCSharp.de Infrastruktur und Dokumentation von AI Überwachen der Leistung von Azure App Services - Azure Monitor
Daher einfach AI seperat erstellen und folgende Webapp Settings setzen:


  {
    "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
    "value": "####ID HERE###",
    "slotSetting": true
  },
  {
    "name": "APPINSIGHTS_PROFILERFEATURE_VERSION",
    "value": "1.0.0",
    "slotSetting": true
  },
  {
    "name": "APPINSIGHTS_SNAPSHOTFEATURE_VERSION",
    "value": "1.0.0",
    "slotSetting": true
  },
  {
    "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
    "value": "InstrumentationKey=####ID HERE###b;IngestionEndpoint=https://###CONNECTION STRING ENDPOINT HERE###/",
    "slotSetting": false
  },
  {
    "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
    "value": "~2",
    "slotSetting": true
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_BaseExtensions",
    "value": "~1",
    "slotSetting": true
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_Mode",
    "value": "recommended",
    "slotSetting": true
  },
  {
    "name": "XDT_MicrosoftApplicationInsights_PreemptSdk",
    "value": "disabled",
    "slotSetting": true
  }

Ansonsten ist das halt ne Glaskugelsache, woran das liegen könnte.
Hangfire ist aber leider sehr sehr sehr sehr hungrig was Ressourcen betrifft und sehr Performance-abhängig -> App Service Plan Performance.

Einfach wie üblich Basic-like vorgehen und erst mal ne schlanke App deployen und schauen, mit welchen Features es langsamer wird.
Mehr kann man da aus der Ferne auch nicht sagen

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Top Antwort! Danke vielmals 🙂
Ja, habe Jobs bei AppStart gestartet und nach einigen Deployments waren es einfach zuviele laufende Jobs.

Jetzt läufts und ich schaue, dass ich Application Insight noch einrichten kann. Danke für die Info!

Vielleicht noch:
Deployment von ASP.NET Core auf Azure; wie am besten?
Ich habe natürlich GIT... und nutze im Moment WebDeploy, aber muss die App jedesmal manuell stoppen und starten,
damit es überhaupt geht.

Kannst du die Deployment Slot-Geschichte empfehlen? Ist es nicht so, dass das viel mehr kostet?

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.827 Beiträge seit 2008
vor 3 Jahren

Deployment von ASP.NET Core auf Azure; wie am besten?

App Service Deployment als Package.
Stoppen und Starten inklusive. Steht auch in den Docs als Recommendation.

Kannst du die Deployment Slot-Geschichte empfehlen? Ist es nicht so, dass das viel mehr kostet?

Klar, super Ding - kostet auch prinzipiell nicht mehr.
Läuft ja alles auf einem App Service Plan.

Anders kannst Du auch kein Always On Deployment mit WebApps umsetzen.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Bin jetzt von B1 auf S1 bei Azure. Kostet jetzt irgendwas um 75CHF anstelle von 51 oder so.
Da seien auch Slots dabei. Ich probiere das mal. Von der Leistung her ist das sowieso besser.

Danke und Grüsse

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.827 Beiträge seit 2008
vor 3 Jahren

Klar, für Slots brauchst nen produktiven Plan.
B-Pläne sind ja eher fürs testen da - und wenn ich mir Deine Preis so anschau, dann verwendest Du Windows und nicht Linux; und da kommen Lizenzkosten hinzu.
Der B1 Windows kostet 45€ und als Linux 11€; das merkt man natürlich.

Aber für nen professionelles Firmen-Projekt sollte das Preisthema in der Region eher nicht da sein.
Auf nicht-produktivpläne gibts auch kein SLA und kein Support.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Danke für die Info Abt, das wusste ich alles nicht.

Wie ist das Linux Hosting von ASP.NET Core auf einem eigenen Server / Azure im Vergleich zum Hosting mit dem IIS?
Nehme an, da ist halt weniger managed, als wenn man eine AppService nimmt?
Performance? Kaltstart? Möglichkeit aufzuwärmen? Untertützung SQL Server auf Linux? Alternativen?

Will da möglichst alles rausholen.

Danke und Grüsse, Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.827 Beiträge seit 2008
vor 3 Jahren

Siehe Übersicht - Azure App Service

App Service Windows ist eine IIS Instanz
App Service Linux ein Docker Container

Performance-Kommentar siehe [Artikel] Die myCSharp.de Infrastruktur