Dela via


Felsöka app-problem med prestanda och låg hastighet i Azure App Service

Den här artikeln hjälper dig att felsöka problem med långsamma appprestanda i Azure App Service.

Om du behöver mer hjälp när som helst i den här artikeln kontaktar du Azure-experterna på Azure Community Support. Du kan också skapa en Azure Support incident. Gå till Azure-support och välj Skicka ett supportärende.

Symtom

När du bläddrar i appen laddas sidorna långsamt och ibland stannar de upp.

Orsak

Det här problemet orsakas ofta av problem på programnivå, till exempel:

  • Nätverksbegäranden tar lång tid
  • Programkod eller databasfrågor är ineffektiva
  • Program med hög minnes-/CPU-användning
  • Programmet kraschar på grund av ett undantag

Felsökningsanvisningar

Felsökning kan delas in i tre olika uppgifter i sekventiell ordning:

  1. Observera och övervaka programbeteende
  2. Samla in data
  3. Åtgärda problemet

App Service ger dig olika alternativ i varje steg.

Observera och övervaka programbeteende

Spåra tjänstens hälsa

Azure offentliggör varje tjänstavbrott eller prestandaförsämring. Du kan spåra tjänstens hälsotillstånd i Azure-portalen. Mer information finns i Visa meddelanden om tjänstens hälsotillstånd med hjälp av Azure-portalen.

Övervaka din app

Du kan använda övervakningsverktyg i Azure-portalen för att ta reda på om ditt program har några problem. Under Övervakning på sidomenyn väljer du Mått. Listrutan Mått visar alla mått som du kan lägga till.

Några av de mått som du kanske vill övervaka för din app är:

  • Tillgängligt arbetsminne
  • CPU-tid
  • Arbetsminne
  • begäranden
  • Svarstid

Skärmbild av måttavsnittet under Övervakning.

Mer information finns i:

Övervaka webbslutpunktsstatus

Om din app körs på prisnivån Standard kan du med App Service övervaka två slutpunkter från tre geografiska platser.

Slutpunktsövervakning konfigurerar webbtester från geo-distribuerade platser som testar svarstiden och drifttiden för webb-URL:er. Testet utför en HTTP GET åtgärd på webb-URL:en för att fastställa svarstiden och drifttiden från varje plats. Varje konfigurerad plats kör ett test var femte minut.

Drifttiden övervakas med http-svarskoder och svarstiden mäts i millisekunder. Ett övervakningstest misslyckas om HTTP-svarskoden är större än eller lika med 400 eller om svaret tar mer än 30 sekunder. En slutpunkt anses vara tillgänglig om dess övervakningstester lyckas från alla angivna platser.

Information om hur du konfigurerar det finns i kvoter och mått för Azure App Service.

Övervakning av programprestanda med tillägg

Du kan också övervaka programmets prestanda med hjälp av ett webbplatstillägg.

Varje App Service-app har en utökningsbar hanteringsslutpunkt som gör att du kan använda en kraftfull uppsättning verktyg som distribueras som webbplatstillägg. Tilläggen omfattar:

  • Källkodsredigerare som GitHub Codespaces.
  • Hanteringsverktyg för anslutna resurser, till exempel en MySQL-databas som är ansluten till en app.

Azure Application Insights är ett tillägg för prestandaövervakningswebbplatser som också är tillgängligt. Om du vill använda Application Insights återskapar du koden med ett SDK. Du kan också installera ett tillägg som ger åtkomst till ytterligare data. Med SDK kan du skriva kod för att övervaka appens användning och prestanda i detalj. Mer information finns i Introduktion till Application Insights – OpenTelemetry-observerbarhet.

Samla in data

App Service tillhandahåller diagnostikfunktioner för loggningsinformation från både webbservern och webbappen. Informationen är uppdelad i webbserverdiagnostik och programdiagnostik.

Aktivera webbserverdiagnostik

Du kan aktivera eller inaktivera följande typer av loggar:

  • Detaljerad felloggning: Detaljerad felinformation för HTTP-statuskoder som anger ett fel (statuskod 400 eller senare). Detta kan innehålla information som kan hjälpa dig att avgöra varför servern returnerade felkoden.
  • Spårning av misslyckade begäranden: Detaljerad information om misslyckade begäranden, inklusive en spårning av de IIS-komponenter som används för att bearbeta begäran och den tid det tar i varje komponent. Detta kan vara användbart om du försöker förbättra appens prestanda eller isolera vad som orsakar ett specifikt HTTP-fel.
  • Webbserverloggning: Information om HTTP-transaktioner med W3C-format för utökad loggfil. Detta är användbart när du fastställer övergripande appmått, till exempel antalet hanterade begäranden eller hur många begäranden som kommer från en specifik IP-adress.

Aktivera programdiagnostik

Det finns flera alternativ för att samla in programprestandadata från App Service, profilera ditt program live från Visual Studio eller ändra programkoden för att logga mer information och spårningar. Du kan välja alternativ baserat på hur mycket åtkomst du har till programmet och vad du har observerat från övervakningsverktygen.

Använda Application Insights Profiler

Du kan göra så att Application Insights Profiler börjar samla in detaljerade prestandaspårningar. Du kan komma åt spårningar som registrerats upp till fem dagar tidigare när du behöver undersöka problem. Du kan välja det här alternativet så länge du har åtkomst till appens Application Insights-resurs på Azure Portal.

Application Insights Profiler tillhandahåller statistik om svarstiden för varje webbanrop och spårningar som anger vilken kodrad som orsakade de långsamma svaren. Ibland är App Service-appen långsam eftersom viss kod inte skrivs på ett högpresterande sätt. Exempel är sekventiell kod som kan köras parallellt och oönstrade databaslåskonkurreringar. Om du tar bort dessa flaskhalsar i koden ökar appens prestanda, men de är svåra att identifiera utan att konfigurera avancerade spårningar och loggar. De spårningar som samlas in av Application Insights Profiler hjälper till att identifiera kodrader som saktar ned programmet och löser den här utmaningen för App Service-appar.

Mer information finns i Aktivera .NET Profiler för Azure App Service-appar i Windows.

Konfigurera diagnostikspårningar manuellt

Om du har åtkomst till källkoden för webbprogrammet kan du använda programdiagnostik för att samla in information som skapats av ett webbprogram. ASP.NET program kan använda System.Diagnostics.Trace klassen för att logga information till programdiagnostikloggen. Du måste dock ändra koden och distribuera om programmet. Den här metoden rekommenderas om din app körs i en testmiljö.

Detaljerade anvisningar om hur du konfigurerar ditt program för loggning finns i Aktivera diagnostikloggning för appar i Azure App Service.

Använda diagnostikverktyget

App Service ger en intelligent och interaktiv upplevelse som hjälper dig att felsöka din app utan att någon konfiguration krävs. När du stöter på problem med din app pekar diagnostikverktyget på vad som är fel för att vägleda dig till rätt information för att enklare och snabbare felsöka och lösa problemet.

Om du vill komma åt App Service-diagnostik går du till din App Service-app eller App Service-miljön i Azure Portal. I sidomenyn väljer du Diagnostisera och lösa problem.

Använda Kudu-felsökningskonsolen

App Service levereras med en felsökningskonsol som du kan använda för att felsöka, utforska, ladda upp filer och JSON-slutpunkter för att få information om din miljö. Den här konsolen kallas Kudu-konsolen eller SCM-instrumentpanelen för din app.

Du kan komma åt den här instrumentpanelen genom att gå till din Kudu-webbplats.

Några av de saker som Kudu tillhandahåller är:

  • Miljöinställningar för ditt program
  • Loggflöde
  • diagnostikutskrift
  • Felsökningskonsol där du kan köra PowerShell-cmdletar och grundläggande DOS-kommandon

En annan användbar funktion i Kudu är att om programmet utlöser undantag från första chansen kan du använda Kudu och Verktyget SysInternals Procdump för att skapa minnesdumpar. Dessa minnesdumpar är ögonblicksbilder av processen och kan ofta hjälpa dig att felsöka mer komplicerade problem med din app.

Mer information om tillgängliga funktioner i Kudu finns i Onlineverktyg för Windows Azure Websites som du bör känna till.

Åtgärda problemet

Skala appen

För ökad prestanda och dataflöde i App Service kan du justera den skala som du kör ditt program med. Att skala upp en app omfattar två relaterade åtgärder: att ändra din App Service-plan till en högre prisnivå och konfigurera vissa inställningar när du har bytt till den högre prisnivån.

Mer information om skalning finns i Skala en app i Azure App Service.

Dessutom kan du välja att köra programmet på mer än en instans. Utskalning ger dig inte bara mer bearbetningskapacitet, utan ger dig också en viss mängd feltolerans. Om processen går ner på en instans fortsätter de andra instanserna att hantera begäranden.

Du kan ange att skalningen ska vara manuell eller automatisk.

Använd automatisk läkning

Automatisk återställning återanvänder arbetsprocessen för din app baserat på inställningar som du väljer, till exempel konfigurationsändringar, begäranden, minnesbaserade gränser eller den tid som krävs för att köra en begäran. För det mesta är återvinning av processen det snabbaste sättet att återställa från ett problem. Även om du alltid kan starta om appen direkt från Azure-portalen, gör automatisk läkning det åt dig utan att du behöver tänka på det. Allt du behöver göra är att lägga till några utlösare i rotwebbkonfigurationen för din app. De här inställningarna fungerar på samma sätt även om programmet inte är en .NET-app.

Mer information finns i Automatisk återställning av Azure-webbplatser.

Starta om appen

Omstart är ofta det enklaste sättet att återställa från engångsproblem. I Azure-portalen har du alternativ för att stoppa eller starta om din app.

Skärmbild av appmenyfältet med stopp- och omstartsknappar.

Du kan också hantera din app med Hjälp av Azure PowerShell. Mer information finns i Hantera Azure-resurser med hjälp av Azure PowerShell.