Vanliga frågor och svar om programprestanda för Web Apps i Azure

Obs!

Vissa av riktlinjerna nedan kanske bara fungerar i Windows eller Linux App Services. Till exempel körs Linux App Services i 64-bitarsläge som standard.

Den här artikeln innehåller svar på vanliga frågor och svar om problem med programprestanda för Web Apps funktion i Azure App Service.

Om ditt Azure-problem inte åtgärdas i den här artikeln går du till Azure-forumen på MSDN och Stack Overflow. Du kan publicera ditt problem i dessa forum eller publicera till @AzureSupport på Twitter. Du kan också skicka en Azure Support begäran. Om du vill skicka en supportbegäran går du till sidan Azure Support och väljer Hämta support.

Varför visar min App Service plan processor-/minnesanvändning även när alla Web Apps stoppas?

Azure App Service kräver kontinuerliga systemprocesser som hanterar flera plattformsåtgärder och funktioner, till exempel säkerhetsuppdateringar, tillgänglighet för SCM-konsolen, programövervakning, autentisering och många andra viktiga funktioner i webbappen.

Systemprocesser körs på App Service planer även om det inte finns några Web Apps körs eller om App Service-planen inte innehåller några Web Apps.

Plattformsprocesserna förbrukar en minsta mängd resurser (till exempel PROCESSOR, minne och diskutrymme), och samma sak bör redovisas under konfigurationen av kapacitetsplanering, övervakning och automatisk skalning av en App Service-plan.

Varför är min app långsam?

Flera faktorer kan bidra till långsamma appprestanda. Detaljerade felsökningssteg finns i Felsöka långsamma webbappprestanda.

Hur gör jag för att felsöka ett scenario med hög CPU-förbrukning?

I vissa scenarier med hög CPU-förbrukning kan din app verkligen kräva mer databehandlingsresurser. I så fall bör du överväga att skala till en högre tjänstnivå så att programmet hämtar alla resurser som behövs. Andra gånger kan hög CPU-förbrukning orsakas av en felaktig loop eller av en kodningspraxis. Att få insikt i vad som utlöser ökad CPU-förbrukning är en process i två delar. Skapa först en processdump och analysera sedan processdumpen. Mer information finns i Avbilda och analysera en dumpfil för hög CPU-förbrukning för Web Apps.

Hur gör jag för att felsöka ett scenario med hög minnesförbrukning?

I vissa scenarier med hög minnesförbrukning kan din app verkligen kräva mer databehandlingsresurser. I så fall bör du överväga att skala till en högre tjänstnivå så att programmet hämtar alla resurser som behövs. Andra gånger kan en bugg i koden orsaka en minnesläcka. En kodningspraxis kan också öka minnesförbrukningen. Att få insikt i vad som utlöser hög minnesförbrukning är en process i två delar. Skapa först en processdump och analysera sedan processdumpen. Kraschdiagnostik från Azure Site Extension Gallery kan effektivt utföra båda dessa steg. Mer information finns i Avbilda och analysera en dumpfil för tillfälligt högt minne för Web Apps.

Hur gör jag för att automatisera App Service webbappar med hjälp av PowerShell?

Du kan använda PowerShell-cmdletar för att hantera och underhålla App Service webbappar. I vårt blogginlägg Automatisera webbappar som finns i Azure App Service med hjälp av PowerShell beskriver vi hur du använder Azure Resource Manager-baserade PowerShell-cmdletar för att automatisera vanliga uppgifter. Blogginlägget innehåller även exempelkod för olika hanteringsuppgifter för webbappar. Beskrivningar och syntax för alla cmdletar för App Service webbappar finns i Az.Websites.

Hur gör jag för att visa min webbapps händelseloggar?

Så här visar du webbappens händelseloggar:

  1. Logga in på din Kudu-webbplats (https://*yourwebsitename*.scm.azurewebsites.net).
  2. På menyn väljer du Felsökningskonsol-CMD>.
  3. Välj mappen LogFiles .
  4. Om du vill visa händelseloggar väljer du pennikonen bredvid eventlog.xml.
  5. Om du vill ladda ned loggarna kör du PowerShell-cmdleten Save-AzureWebSiteLog -Name webappname.

Hur gör jag för att avbilda en minnesdump i användarläge av min webbapp?

Så här registrerar du en minnesdump i användarläge för webbappen:

  1. Logga in på din Kudu-webbplats (https://*yourwebsitename*.scm.azurewebsites.net).
  2. Välj menyn ProcessUtforskaren .
  3. Högerklicka på w3wp.exe processen eller webbjobbsprocessen.
  4. Välj Ladda ned hela dumpen för minne>.

Hur gör jag för att visa information på processnivå för min webbapp?

Du har två alternativ för att visa information på processnivå för din webbapp:

  • I Azure Portal:
    1. Öppna processutforskaren för webbappen.
    2. Om du vill se informationen väljer du denw3wp.exe processen.
  • I Kudu-konsolen:
    1. Logga in på din Kudu-webbplats (https://*yourwebsitename*.scm.azurewebsites.net).
    2. Välj menyn ProcessUtforskaren .
    3. För denw3wp.exe processen väljer du Egenskaper.

När jag bläddrar till min app visas "Fel 403 – Den här webbappen har stoppats". Hur gör jag för att lösa detta?

Tre villkor kan orsaka det här felet:

  • Webbappen har nått en faktureringsgräns och webbplatsen har inaktiverats.
  • Webbappen har stoppats i portalen.
  • Webbappen har nått en resurskvotgräns som kan gälla för en tjänstplan för kostnadsfri eller delad skalning.

Om du vill se vad som orsakar felet och lösa problemet följer du stegen i Web Apps: "Fel 403 – Den här webbappen har stoppats".

Var kan jag lära mig mer om kvoter och gränser för olika App Service planer?

Information om kvoter och gränser finns i App Service gränser.

Hur gör jag för att minska svarstiden för den första begäran efter inaktivitetstid?

Som standard tas webbappar bort om de är inaktiva under en viss tidsperiod. På så sätt kan systemet spara resurser. Nackdelen är att svaret på den första begäran efter att webbappen har inaktiverats är längre, så att webbappen kan läsa in och börja betjäna svar. I Basic- och Standard-tjänstplaner kan du aktivera inställningen Alltid på för att hålla appen alltid inläst. Detta eliminerar längre inläsningstider när appen är inaktiv. Så här ändrar du inställningen AlwaysOn :

  1. I Azure Portal går du till din webbapp.
  2. Välj Konfiguration
  3. Välj Allmänna inställningar.
  4. För AlwaysOn väljer du .

Hur gör jag för att aktivera spårning av misslyckade förfrågningar?

Så här aktiverar du spårning av misslyckade förfrågningar:

  1. I Azure Portal går du till din webbapp.

  2. Välj Alla inställningar>Diagnostikloggar.

  3. För Spårning av misslyckade förfrågningar väljer du .

  4. Välj Spara.

  5. På bladet webbapp väljer du Verktyg.

  6. Välj Visual Studio Online.

  7. Om inställningen inte är väljer du .

  8. Välj .

  9. Välj Web.config.

  10. I system.webServer lägger du till följande konfiguration (för att avbilda en specifik URL):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*api*" />
    <add path="*api*">
    <traceAreas>
    <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  11. Om du vill felsöka problem med långsamma prestanda lägger du till den här konfigurationen (om avbildningsbegäran tar mer än 30 sekunder):

    <system.webServer>
    <tracing> <traceFailedRequests>
    <remove path="*" />
    <add path="*">
    <traceAreas> <add provider="ASP" verbosity="Verbose" />
    <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
    <add provider="ISAPI Extension" verbosity="Verbose" />
    <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression, Cache,RequestNotifications,Module,FastCGI" verbosity="Verbose" />
    </traceAreas>
    <failureDefinitions timeTaken="00:00:30" statusCodes="200-999" />
    </add> </traceFailedRequests>
    </tracing>
    
  12. Om du vill ladda ned spårningar av misslyckade begäranden går du till din webbplats i portalen.

  13. Välj Verktyg>Kudu>Go.

  14. På menyn väljer du Felsökningskonsol-CMD>.

  15. Välj mappen LogFiles och välj sedan mappen med ett namn som börjar med W3SVC.

  16. Om du vill se XML-filen väljer du pennikonen.

Jag ser meddelandet "Arbetsprocessen begärde återanvändning på grund av gränsen för procent minne". Hur gör jag för att åtgärda problemet?

Den maximala tillgängliga mängden minne för en 32-bitarsprocess (även på ett 64-bitars operativsystem) är 2 GB. Som standard är arbetsprocessen inställd på 32-bitars i App Service (för kompatibilitet med äldre webbprogram).

Överväg att byta till 64-bitarsprocesser så att du kan dra nytta av det extra minne som är tillgängligt i din Web Worker-roll. Den här åtgärden utlöser en omstart av webbappen, så schemalägg därefter.

Observera också att en 64-bitarsmiljö kräver en Basic- eller Standard-tjänstplan. Kostnadsfria och delade planer körs alltid i en 32-bitarsmiljö.

Mer information finns i Konfigurera webbappar i App Service.

Varför överskrider min begäran tidsgränsen efter 230 sekunder?

Azure Load Balancer har en standardinställning för tidsgräns för inaktivitet på fyra minuter. Den här inställningen är vanligtvis en rimlig tidsgräns för svar för en webbbegäran. så App Service returnerar en timeout till klienten om ditt program inte returnerar ett svar inom cirka 240 sekunder (230 sekunder i Windows-appen, 240 sekunder i Linux-appen). Om din webbapp kräver bakgrundsbearbetning rekommenderar vi att du använder Azure WebJobs. Azure-webbappen kan anropa WebJobs och meddelas när bakgrundsbearbetningen är klar. Du kan välja mellan flera metoder för att använda webbjobb, inklusive köer och utlösare.

WebJobs är utformat för bakgrundsbearbetning. Du kan göra så mycket bakgrundsbearbetning som du vill i ett webbjobb. Mer information om webbjobb finns i Köra bakgrundsaktiviteter med webbjobb.

ASP.NET Core program som finns i App Service slutar ibland svara. Hur gör jag för att åtgärda problemet?

Ett känt problem med en tidigare Kestrel-version kan orsaka att en ASP.NET Core 1.0-app som finns i App Service tillfälligt slutar svara. Du kan också se följande meddelande: "Det angivna CGI-programmet påträffade ett fel och servern avslutade processen."

Det här problemet har åtgärdats i Kestrel version 1.0.2. Den här versionen ingår i uppdateringen ASP.NET Core 1.0.3. Lös problemet genom att uppdatera dina appberoenden så att de använder Kestrel 1.0.2. Du kan också använda någon av två lösningar som beskrivs i blogginlägget ASP.NET Core 1.0 långsamma prestandaproblem i App Service webbappar.

Jag kan inte hitta mina loggfiler i filstrukturen i webbappen. Hur hittar jag dem?

Om du använder funktionen Lokal cache i App Service påverkas mappstrukturen för Mapparna LogFiles och Data för din App Service instans. När lokal cache används skapas undermappar i mapparna LogFiles och Data för lagring. Undermapparna använder namnmönstret "unik identifierare" + tidsstämpel. Varje undermapp motsvarar en VM-instans där webbappen körs eller har körts.

Om du vill ta reda på om du använder lokal cache kontrollerar du fliken App Service Programinställningar. Om lokal cache används är appinställningen WEBSITE_LOCAL_CACHE_OPTION inställd på Always.

Om du inte använder lokal cache och har det här problemet skickar du en supportbegäran.

Jag ser meddelandet "Ett försök gjordes att komma åt en socket på ett sätt som är förbjudet av dess åtkomstbehörigheter." Hur gör jag för att lösa det här felet?

Det här felet uppstår vanligtvis om de utgående TCP-anslutningarna på den virtuella datorinstansen är slut. I App Service tillämpas gränser för det maximala antalet utgående anslutningar som kan göras för varje VM-instans. Mer information finns i Numeriska gränser mellan virtuella datorer.

Det här felet kan också inträffa om du försöker komma åt en lokal adress från ditt program. Mer information finns i Lokala adressförfrågningar.

Mer information om utgående anslutningar i webbappen finns i blogginlägget om utgående anslutningar till Azure-webbplatser.

Hur gör jag för att använda Visual Studio för att fjärrfelsöka min App Service webbapp?

En detaljerad genomgång som visar hur du felsöker din webbapp med hjälp av Visual Studio finns i Fjärrfelsöka din App Service webbapp.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.