A lassú alkalmazások teljesítményével kapcsolatos hibák elhárítása Azure App ServiceTroubleshoot slow app performance issues in Azure App Service

Ez a cikk segítséget nyújt a lassú alkalmazások teljesítményével kapcsolatos hibák elhárításában Azure app Service.This article helps you troubleshoot slow app performance issues in Azure App Service.

Ha a cikk bármely pontján további segítségre van szüksége, vegye fel a kapcsolatot az Azure-szakértőkkel az MSDN Azure-ban és a stack overflow fórumokon.If you need more help at any point in this article, you can contact the Azure experts on the MSDN Azure and the Stack Overflow forums. Azt is megteheti, hogy Azure-támogatási incidenst is beküld.Alternatively, you can also file an Azure support incident. Nyissa meg az Azure támogatási webhelyét , és kattintson a támogatás kéréselehetőségre.Go to the Azure Support site and click on Get Support.

HibajelenségSymptom

Amikor megkeresi az alkalmazást, az oldalak lassan és időnként időtúllépéssel töltődnek be.When you browse the app, the pages load slowly and sometimes timeout.

OkCause

Ezt a problémát gyakran az alkalmazási szintű problémák okozzák, például:This problem is often caused by application level issues, such as:

  • a hálózati kérelmek hosszú időt vesznek igénybenetwork requests taking a long time
  • az alkalmazás kódja vagy az adatbázis lekérdezése nem hatékonyapplication code or database queries being inefficient
  • nagy memóriát/CPU-t használó alkalmazásapplication using high memory/CPU
  • az alkalmazás összeomlik egy kivétel miattapplication crashing due to an exception

Hibaelhárítási lépésekTroubleshooting steps

A hibaelhárítás három különálló feladatra osztható, szekvenciális sorrendben:Troubleshooting can be divided into three distinct tasks, in sequential order:

  1. Az alkalmazások viselkedésének megfigyelése és figyeléseObserve and monitor application behavior
  2. AdatgyűjtésCollect data
  3. A probléma enyhítéseMitigate the issue

App Service az egyes lépésekben különböző lehetőségeket biztosít.App Service gives you various options at each step.

1. az alkalmazások viselkedésének megfigyelése és figyelése1. Observe and monitor application behavior

Szolgáltatás állapotának nyomon követéseTrack Service health

Microsoft Azure minden alkalommal nyilvánosságra kerül, amikor a szolgáltatás megszakad vagy a teljesítmény romlása.Microsoft Azure publicizes each time there is a service interruption or performance degradation. A szolgáltatás állapotát a Azure Portalkövetheti nyomon.You can track the health of the service on the Azure portal. További információ: a szolgáltatás állapotának nyomon követése.For more information, see Track service health.

Az alkalmazás figyeléseMonitor your app

Ezzel a beállítással megtudhatja, hogy az alkalmazás problémákba ütközik-e.This option enables you to find out if your application is having any issues. Az alkalmazás paneljén kattintson a kérelmek és hibák csempére.In your app’s blade, click the Requests and errors tile. A metrika panel megjeleníti az összes felvehető mérőszámot.The Metric blade shows you all the metrics you can add.

Előfordulhat, hogy az alkalmazáshoz figyelni kívánt metrikák némelyikeSome of the metrics that you might want to monitor for your app are

  • Memória átlagos munkakészleteAverage memory working set
  • Átlagos válaszidőAverage response time
  • CPU-időCPU time
  • Memória munkakészleteMemory working set
  • KérelmekRequests

alkalmazás teljesítményének figyelése

További információ eléréséhez lásd:For more information, see:

Webes végpont állapotának figyeléseMonitor web endpoint status

Ha az alkalmazást a standard szintű díjszabásban futtatja, app Service két végpont figyelését teszi lehetővé három földrajzi helyről.If you are running your app in the Standard pricing tier, App Service lets you monitor two endpoints from three geographic locations.

A végpontok figyelése olyan földrajzilag elosztott helyekről konfigurálja a webes teszteket, amelyek a válaszadási időt és a webes URL-címek üzemidőét tesztelik.Endpoint monitoring configures web tests from geo-distributed locations that test response time and uptime of web URLs. A teszt végrehajt egy HTTP GET műveletet a webes URL-címen, hogy meghatározza a válaszidő és az üzemidőt az egyes helyekről.The test performs an HTTP GET operation on the web URL to determine the response time and uptime from each location. Minden konfigurált hely 5 percenként futtat egy tesztet.Each configured location runs a test every five minutes.

A üzemidőt a HTTP-válasz kódok használatával figyeli a rendszer, a válaszidő mérése pedig ezredmásodpercben történik.Uptime is monitored using HTTP response codes, and response time is measured in milliseconds. A figyelési teszt sikertelen, ha a HTTP-válasz kódja nagyobb vagy egyenlő, mint 400, vagy ha a válasz 30 másodpercnél hosszabb időt vesz igénybe.A monitoring test fails if the HTTP response code is greater than or equal to 400 or if the response takes more than 30 seconds. Egy végpont akkor tekinthető elérhetőnek, ha a figyelési tesztek az összes megadott helyről sikeresek voltak.An endpoint is considered available if its monitoring tests succeed from all the specified locations.

A beállításához lásd: alkalmazások figyelése Azure app Serviceban.To set it up, see Monitor apps in Azure App Service.

Lásd még: az Azure-webhelyek és a végpontok figyelése – Stefan Schackow a végpontok figyelésével kapcsolatos videókhoz.Also, see Keeping Azure Web Sites up plus Endpoint Monitoring - with Stefan Schackow for a video on endpoint monitoring.

Alkalmazások teljesítményének monitorozása bővítmények használatávalApplication performance monitoring using Extensions

Az alkalmazások teljesítményét a hely bővítményénekhasználatával is nyomon követheti.You can also monitor your application performance by using a site extension.

Az egyes App Service alkalmazások egy bővíthető felügyeleti végpontot biztosítanak, amely lehetővé teszi, hogy a helyi bővítményként telepített eszközök hatékony készletét használja.Each App Service app provides an extensible management end point that allows you to use a powerful set of tools deployed as site extensions. A bővítmények a következők:Extensions include:

  • Forráskód-szerkesztők, például az Azure DevOps.Source code editors like Azure DevOps.
  • A csatlakoztatott erőforrások, például egy alkalmazáshoz csatlakoztatott MySQL-adatbázis felügyeleti eszközei.Management tools for connected resources such as a MySQL database connected to an app.

Az Azure Application Insights egy teljesítmény-figyelési hely kiterjesztése, amely szintén elérhető.Azure Application Insights is a performance monitoring site extension that's also available. Application Insights használatához újra kell építenie a kódot egy SDK-val.To use Application Insights, you rebuild your code with an SDK. Olyan bővítményt is telepíthet, amely hozzáférést biztosít a további információkhoz.You can also install an extension that provides access to additional data. Az SDK lehetővé teszi, hogy kódot írjon az alkalmazás használatának és teljesítményének figyelésére részletesebben.The SDK lets you write code to monitor the usage and performance of your app in more detail. További információ: a teljesítmény figyelése a webalkalmazásokban.For more information, see Monitor performance in web applications.

2. adatgyűjtés2. Collect data

A App Service diagnosztikai funkciókat biztosít a webkiszolgálóról és a webalkalmazásból származó adatok naplózásához.App Service provides diagnostic functionality for logging information from both the web server and the web application. Az információk a webkiszolgáló-diagnosztika és az Application Diagnostics szolgáltatásban vannak elkülönítve.The information is separated into web server diagnostics and application diagnostics.

Webkiszolgáló-diagnosztika engedélyezéseEnable web server diagnostics

Engedélyezheti vagy letilthatja a következő típusú naplókat:You can enable or disable the following kinds of logs:

  • Részletes hiba naplózása – a hibát jelző HTTP-állapotkódok részletes információi (400 vagy újabb állapotkód).Detailed Error Logging - Detailed error information for HTTP status codes that indicate a failure (status code 400 or greater). Ez olyan információkat tartalmazhat, amelyek segíthetnek meghatározni, hogy a kiszolgáló miért adta vissza a hibakódot.This may contain information that can help determine why the server returned the error code.
  • Sikertelen kérelmek nyomkövetése – részletes információk a sikertelen kérésekről, beleértve a kérés feldolgozásához és az egyes összetevőkben használt IIS-összetevők nyomkövetését.Failed Request Tracing - Detailed information on failed requests, including a trace of the IIS components used to process the request and the time taken in each component. Ez akkor lehet hasznos, ha az alkalmazás teljesítményének javítására vagy egy adott HTTP-hiba okozta elkülönítésére tesz kísérletet.This can be useful if you are attempting to improve app performance or isolate what is causing a specific HTTP error.
  • Webkiszolgáló-naplózás – a W3C bővített naplófájl formátumával http-tranzakciókra vonatkozó információk.Web Server Logging - Information about HTTP transactions using the W3C extended log file format. Ez hasznos lehet az alkalmazás általános metrikáinak, például a kezelt kérelmek számának vagy egy adott IP-címről érkező kérések meghatározásakor.This is useful when determining overall app metrics, such as the number of requests handled or how many requests are from a specific IP address.

Application Diagnostics engedélyezéseEnable application diagnostics

Számos lehetőség áll rendelkezésre az alkalmazások teljesítményadatait App Serviceból való összegyűjtésére, az alkalmazás a Visual studióból való beolvasására, vagy az alkalmazás kódjának módosítására további információk és Nyomkövetések naplózása érdekében.There are several options to collect application performance data from App Service, profile your application live from Visual Studio, or modify your application code to log more information and traces. A beállításokat az alkalmazáshoz és a figyelési eszközöktől megfigyelt hozzáférések alapján választhatja ki.You can choose the options based on how much access you have to the application and what you observed from the monitoring tools.

Application Insights Profiler használataUse Application Insights Profiler

Engedélyezheti a Application Insights Profiler a részletes teljesítmény-nyomkövetés rögzítésének megkezdéséhez.You can enable the Application Insights Profiler to start capturing detailed performance traces. A nyomkövetéseket akár öt nappal ezelőtt is elérheti, ha a múltban történt problémák vizsgálatára van szükség.You can access traces captured up to five days ago when you need to investigate problems happened in the past. Ezt a beállítást akkor válassza, ha az alkalmazás Application Insights erőforrását Azure Portalon szeretné elérni.You can choose this option as long as you have access to the app's Application Insights resource on Azure portal.

Application Insights Profiler statisztikai adatokat biztosít minden olyan webes hívás és nyomkövetés esetében, amely azt jelzi, hogy a kód mely sorában okozta a lassú válaszokat.Application Insights Profiler provides statistics on response time for each web call and traces that indicates which line of code caused the slow responses. Előfordulhat, hogy a App Service alkalmazás lassú, mert bizonyos kódok nem a megfelelő módon íródnak.Sometimes the App Service app is slow because certain code is not written in a performant way. Ilyenek például a szekvenciális kód, amely párhuzamos és nem kívánt adatbázis-zárolási tartalommal futtatható.Examples include sequential code that can be run in parallel and undesired database lock contentions. Ha eltávolítja ezeket a szűk keresztmetszeteket a kódban, az megnöveli az alkalmazás teljesítményét, de nehéz felderíteni, hogy nem lettek kidolgozva a Nyomkövetések és a naplók.Removing these bottlenecks in the code increases the app's performance, but they are hard to detect without setting up elaborate traces and logs. A Application Insights Profiler által összegyűjtött nyomkövetési funkció segítségével azonosíthatja a kód azon sorait, amelyek lelassítják az alkalmazást, és elhárítják ezt a kihívást App Service alkalmazások esetében.The traces collected by Application Insights Profiler helps identifying the lines of code that slows down the application and overcome this challenge for App Service apps.

További információ: a Azure app Service élő alkalmazásainak profilkészítése a Application Insights.For more information, see Profiling live apps in Azure App Service with Application Insights.

Távoli profilkészítés használataUse Remote Profiling

A Azure App Service a webalkalmazások, az API-alkalmazások, a mobil háttérrendszer és a webjobs távolról is létrehozhatók.In Azure App Service, web apps, API apps, mobile back ends, and WebJobs can be remotely profiled. Akkor válassza ezt a lehetőséget, ha rendelkezik hozzáféréssel az alkalmazás-erőforráshoz, és tudja, hogyan reprodukálja a problémát, vagy ha ismeri a probléma pontos időintervallumát.Choose this option if you have access to the app resource and you know how to reproduce the issue, or if you know the exact time interval the performance issue happens.

A távoli profilkészítés akkor hasznos, ha a folyamat CPU-használata magas, és a folyamat a vártnál lassabban fut, vagy a HTTP-kérelmek késése a Normálnál magasabb, a folyamat lekérése és a CPU mintavételezési hívási verem a folyamat elemzéséhez tevékenység-és kód-elérési utak.Remote Profiling is useful if the CPU usage of the process is high and your process is running slower than expected, or the latency of HTTP requests are higher than normal, you can remotely profile your process and get the CPU sampling call stacks to analyze the process activity and code hot paths.

További információ: távoli profilkészítés támogatása Azure app Service.For more information, see Remote Profiling support in Azure App Service.

Diagnosztikai Nyomkövetések manuális beállításaSet up diagnostic traces manually

Ha rendelkezik hozzáféréssel a webalkalmazás forráskódhoz, az Application Diagnostics lehetővé teszi a webalkalmazások által létrehozott információk rögzítését.If you have access to the web application source code, Application diagnostics enables you to capture information produced by a web application. A ASP.NET-alkalmazások a System.Diagnostics.Trace osztály használatával naplózzák az adatokat az Application Diagnostics-naplóba.ASP.NET applications can use the System.Diagnostics.Trace class to log information to the application diagnostics log. Azonban módosítania kell a kódot, és újra kell telepítenie az alkalmazást.However, you need to change the code and redeploy your application. Ez a módszer akkor javasolt, ha az alkalmazás tesztelési környezetben fut.This method is recommended if your app is running on a testing environment.

Az alkalmazás naplózáshoz való konfigurálásának részletes ismertetését lásd: a diagnosztikai naplózás engedélyezése a Azure app Service alkalmazásokhoz.For detailed instructions on how to configure your application for logging, see Enable diagnostics logging for apps in Azure App Service.

A diagnosztikai eszköz használataUse the diagnostics tool

A App Service egy intelligens és interaktív élményt nyújt, amely segít a szükséges konfigurációval kapcsolatos hibák megoldásában.App Service provides an intelligent and interactive experience to help you troubleshoot your app with no configuration required. Ha az alkalmazással kapcsolatos problémákba ütközik, a diagnosztikai eszköz kimutatja, hogy mi a baj, hogy a probléma megoldásához könnyebben és gyorsan javítsa a megfelelő információkat.When you do run into issues with your app, the diagnostics tool will point out what’s wrong to guide you to the right information to more easily and quickly troubleshoot and resolve the issue.

App Service diagnosztika eléréséhez nyissa meg a App Service alkalmazást vagy App Service Environment a Azure Portalban.To access App Service diagnostics, navigate to your App Service app or App Service Environment in the Azure portal. A bal oldali navigációs sávon kattintson a problémák diagnosztizálása és megoldásaelemre.In the left navigation, click on Diagnose and solve problems.

A kudu hibakeresési konzoljának használataUse the Kudu Debug Console

A App Service egy hibakeresési konzolt tartalmaz, amellyel hibakeresést végezhet, megvizsgálhatja, feltöltheti és feltölthet fájlokat, valamint JSON-végpontokat a környezettel kapcsolatos információk beszerzéséhez.App Service comes with a debug console that you can use for debugging, exploring, uploading files, as well as JSON endpoints for getting information about your environment. Ezt a konzolt az alkalmazás kudu-konzoljának vagy SCM-irányítópultjának nevezzük.This console is called the Kudu Console or the SCM Dashboard for your app.

Az irányítópult eléréséhez lépjen a hivatkozás https://,<az alkalmazás neve >. SCM. azurewebsites. net/ .You can access this dashboard by going to the link https://<Your app name>.scm.azurewebsites.net/.

A kudu által biztosított néhány dolog:Some of the things that Kudu provides are:

  • az alkalmazás környezeti beállításaienvironment settings for your application
  • napló Streamlog stream
  • diagnosztikai memóriaképdiagnostic dump
  • hibakeresési konzol, amelyen PowerShell-parancsmagokat és alapszintű DOS-parancsokat futtathat.debug console in which you can run Powershell cmdlets and basic DOS commands.

A kudu egy másik hasznos funkciója, hogy ha az alkalmazás első alkalommal kivételeket vált ki, akkor a kudu és a SysInternals eszköz Procdump használatával hozhat létre memóriaképeket.Another useful feature of Kudu is that, in case your application is throwing first-chance exceptions, you can use Kudu and the SysInternals tool Procdump to create memory dumps. Ezek a memóriaképek a folyamat pillanatképei, és gyakran segítenek az alkalmazással kapcsolatos bonyolultabb problémák megoldásában.These memory dumps are snapshots of the process and can often help you troubleshoot more complicated issues with your app.

A kudu-ben elérhető szolgáltatásokkal kapcsolatos további információkért lásd: Azure DevOps-eszközök.For more information on features available in Kudu, see Azure DevOps tools you should know about.

3. a probléma enyhítése3. Mitigate the issue

Az alkalmazás méretezéseScale the app

Azure App Service a teljesítmény és az átviteli sebesség növelése érdekében módosíthatja azt a méretezést, amelyen az alkalmazást futtatja.In Azure App Service, for increased performance and throughput, you can adjust the scale at which you are running your application. Az alkalmazások horizontális felskálázása két kapcsolódó művelettel jár: a App Service terv magasabb árképzési szintre való módosításával, valamint bizonyos beállítások konfigurálásával, miután átváltotta a magasabb díjszabási szintet.Scaling up an app involves two related actions: changing your App Service plan to a higher pricing tier, and configuring certain settings after you have switched to the higher pricing tier.

További információ a skálázásról: alkalmazások méretezése Azure app Serviceban.For more information on scaling, see Scale an app in Azure App Service.

Emellett dönthet úgy is, hogy az alkalmazást egynél több példányon futtatja.Additionally, you can choose to run your application on more than one instance. A horizontális felskálázás nem csupán nagyobb feldolgozási képességet biztosít, ugyanakkor bizonyos mennyiségű hibatűrést is biztosít.Scaling out not only provides you with more processing capability, but also gives you some amount of fault tolerance. Ha a folyamat egy példányon leáll, a többi példány továbbra is kéri a kérelmek kiszolgálását.If the process goes down on one instance, the other instances continue to serve requests.

Beállíthatja, hogy a méretezés manuális vagy automatikus legyen.You can set the scaling to be Manual or Automatic.

Az autoheal használataUse AutoHeal

Az automatikus gyógyulás a választott beállítások alapján újrahasznosítja az alkalmazás munkavégző folyamatát (például a konfiguráció módosításait, a kérelmeket, a memória alapú korlátokat vagy a kérelem végrehajtásához szükséges időt).AutoHeal recycles the worker process for your app based on settings you choose (like configuration changes, requests, memory-based limits, or the time needed to execute a request). A legtöbb esetben a folyamat újrahasznosítása a leggyorsabb módszer a probléma megoldására.Most of the time, recycle the process is the fastest way to recover from a problem. Bár bármikor újraindíthatja az alkalmazást közvetlenül a Azure Portal belül, az automatikus javítás automatikusan elvégzi Önt.Though you can always restart the app from directly within the Azure portal, AutoHeal does it automatically for you. Mindössze annyit kell tennie, hogy a root web. config fájlban ad hozzá néhány eseményindítót az alkalmazásához.All you need to do is add some triggers in the root web.config for your app. Ezek a beállítások ugyanúgy működnek, még akkor is, ha az alkalmazás nem .NET-alkalmazás.These settings would work in the same way even if your application is not a .NET app.

További információ: az Azure webhelyek automatikusjavítása.For more information, see Auto-Healing Azure Web Sites.

Az alkalmazás újraindításaRestart the app

Az újraindítás gyakran a legegyszerűbb módszer az egyszeri problémák elhárítására.Restarting is often the simplest way to recover from one-time issues. A Azure Portalaz alkalmazás paneljén lehetősége van az alkalmazás leállítására vagy újraindítására.On the Azure portal, on your app’s blade, you have the options to stop or restart your app.

az alkalmazás újraindítása a teljesítménnyel kapcsolatos problémák megoldásához

Az alkalmazást az Azure PowerShell használatával is kezelheti.You can also manage your app using Azure Powershell. További információ: Az Azure PowerShell használata az Azure Resource Manager eszközzel.For more information, see Using Azure PowerShell with Azure Resource Manager.