Megosztás a következőn keresztül:


Futtatókörnyezet viselkedésének monitorozása és elemzése kódoptimalizálásokkal

Az alkalmazás teljesítményproblémáinak diagnosztizálása nehéz lehet, különösen akkor, ha az alkalmazás éles környezetben fut a dinamikus felhőben. A folyamat kérését kezelő infrastruktúra, keretrendszer vagy alkalmazáskód lassú válaszokat okozhat az alkalmazásban.

A Azure Application Insights AI-alapú szolgáltatása, a Code Optimizations a .NET-hez készült Application Insights Profilerrel együttműködve működik. Közösen észlelik a processzor- és memóriahasználati problémákat kódszinten. Javaslatokat tesznek a problémák megoldására.

Megalapozott döntéseket hozhat és optimalizálhatja a kódot az éles környezetből összegyűjtött valós idejű teljesítményadatok és elemzések használatával.

Kódoptimalizálás és Application Insights Profiler .NET

A .NET Profiler és a Kódoptimalizálás együttműködve holisztikus megközelítést biztosít a teljesítményproblémák észleléséhez.

Kódoptimalizálások

Code Optimizations azonosítja, elemzi és feloldja az Application Insights Profiler által .NET gyűjtött profilkészítési adatokat. Mivel a .NET Profiler adatokat tölt fel az Application Insightsba, a machine learning modell elemez néhány adatot, hogy megtalálja az alkalmazás kódjának optimalizálását. Kódoptimalizálások:

  • Megjeleníti az idővel összegyűjtött összesített adatokat.
  • Adatokat kapcsol össze az alkalmazáskód metódusaival és függvényeivel.
  • Azonosítja a problémát a szűk keresztmetszetek megtalálásával a kódban.
  • Elemzések alapján kódszintű teljesítményjavításokat biztosít.

Azonosít

A Code Optimizations konszolidált áttekintési oldalával az Azure-előfizetések és az Application Insights-erőforrások összes kódoptimalizálását láthatja az Azure portálon.

A kódoptimalizálások elemzéseket gyűjtenek a .NET Profiler által gyűjtött adatokból és a Snapshot Debugger-pillanatképekből, ha engedélyezve van. Azonosíthatja a kód szűk keresztmetszeteit, és áttekintheti a fejlesztési, tesztelési, előkészítési és éles környezetekre vonatkozó kódszintű javaslatokat.

Elemzés

Miután a környezet adatait összegyűjtötte a .NET Profiler-nyomkövetésekből és a Snapshot Debugger-pillanatképekből, ha engedélyezve van, a kódoptimalizálások óránként kódszintű javaslatokat nyújtanak. Alapértelmezés szerint az összesített adatnézet egy 24 órás, a közelmúltban azonosított problémákat megjelenítő, 30 napos előzményt jelenít meg, amellyel áttekintheti és elemezheti a múltbeli eseményeket.

Megoldás

A kódoptimalizálások azonosítása és elemzése után az Azure Portal Részletek másolása gombjával manuálisan is hozzáadhatja az elemzési környezetet kedvenc eszközéhez, például a GitHub Copilothoz.

A GitHub problémát a Azure portal Kódoptimalizálás lapján is létrehozhatja, és hozzárendelheti a GitHub Copilot kódolási ügynökhöz. Innen a GitHub Copilot megnyit egy pull requestet, és feltölti a kódoptimalizálások alapján készült kódmódosítási commiteket.

Bemutató videó

Alkalmazás Insights Profiler a .NET-hez

A .NET Profiler az adott kérések nyomon követésére összpontosít, egészen az ezredmásodpercig. Kiváló átfogó képet nyújt az alkalmazás problémáiról, és általános ajánlott eljárásokat biztosít a problémák megoldásához.

A .NET-hez készült Application Insights Profilerrel a forgatókönyvtől függetlenül rögzítheti, azonosíthatja és megtekintheti a Azure futó alkalmazás teljesítménybeli nyomkövetéseit. A .NET Profiler nyomkövetési folyamata automatikusan, nagy léptékben történik, és nem befolyásolja negatívan a felhasználókat. A .NET Profiler a következőt azonosítja:

  • Az ügyfelei által kezdeményezett egyedi webes kérések medián, leggyorsabb és leglassabb válaszideje.
  • A legforgalmasabb kódútvonal, amely egy adott webes kérelem kezelésével tölti a legtöbb időt.

Engedélyezze a .NET Profiler futtatását az összes Azure-alkalmazásban az adatok összegyűjtéséhez a következő eseményindítókkal:

  • Mintavételezési eseményindító: A Profiler véletlenszerűen indul el óránként körülbelül két percig.
  • CPU-eseményindító: Elindítja a Profilert, ha a processzorhasználat százalékos aránya meghaladja a 80%-ot.
  • Memória-eseményindító: Elindítja a profilkészítőt, ha a memóriahasználat meghaladja a 80%-ot.

Ezen eseményindítók mindegyike konfigurálható , engedélyezhető vagy letiltható.

Költségek és többletköltségek

A kódoptimalizálások automatikusan létrejönnek, miután a .NET Application Insights profiler engedélyezve van. A Profiler alapértelmezés szerint óránként 30 másodpercig, magas processzor- vagy memóriahasználati időszakokban 30 másodpercig gyűjti a nyomkövetéseket. Az óránkénti nyomkövetések (úgynevezett mintavételezés) kiválóan alkalmasak a proaktív hangolásra. A magas processzor- és memórianyomok (úgynevezett triggerek) hasznosak a reaktív hibaelhárításhoz.

Megjegyzés:

Amikor az Application Insights Profiler for .NET aktívan futtatja és gyűjti a nyomkövetéseket, általában 5% és 15% processzor- és memóriaterhelést ad hozzá a kiszolgálóhoz.

A .NET Profiler által rögzített adatok tárolásához nincs további költség. Az adatok 15 nap elteltével automatikusan törlődnek.

Az egyes kódoptimalizálási funkciókhoz, mint például a kódszintű javítási javaslatokhoz, Copilot for GitHub vagy Copilot for Azure szükséges.

.NET Profiler engedélyezése

A keretrendszerek és az Azure-szolgáltatások fejlődésével különböző lehetőségekkel engedélyezheti a .NET Profiler-t az Azure-ban futó .NET-alkalmazásai számára.

Azure szolgáltatás Engedélyezés Részletek
A legtöbb Azure szolgáltatás Kódmódosítás az alkalmazásban
(legtöbb univerzális)
Ha a .NET-alkalmazás Azure PaaS-szolgáltatások vagy -tárolók változatán fut, két lehetőség közül választhat a profilkészítő .NET engedélyezéséhez:
- Application Insights Profiler az ASP.NET Core, amely Application Insights SDK-t használ, vagy
- ÚjAzure Monitor OpenTelemetry Profiler for .NET (előzetes verzió), amely az Azure Monitor OpenTelemetry Distro-t használja
Azure App Service Nincs kódmódosítás az alkalmazáshoz Mivel a Profiler előre telepítve van, engedélyezheti a Profiler for .NET használatát az Azure Portalon a következő célokra:
- Azure App Service – .NET alkalmazás Windows rendszeren
- Azure Functions – App Service terv
Virtual Machines Nincs kódmódosítás az alkalmazáshoz Miután az Application Insights SDK engedélyezve van az alkalmazáskódban, engedélyezheti a profilkészítőt a .NET-hez az ARM-sablonban.
- Azure Virtuális Gépek és Virtuális Gépméretkészletek Windowshoz
- Azure Service Fabric

Részletek és példák a .NET Profiler engedélyezéséhez

Támogatott régiók

A kódoptimalizálások ugyanabban a régióban érhetők el, mint az Application Insights. Az elérhető régiókat az alábbi paranccsal ellenőrizheti:

az account list-locations -o table

Egy explicit régiót a kapcsolati karakterlánc használatával beállíthat. További információ: Kapcsolati sztring példák.

Korlátozások

Profiler

  • Webalkalmazások profilozása:
    • A .NET Profilert külön költség nélkül használhatja, bár a webalkalmazást legalább a Web Apps szolgáltatás alapszintű szintjén kell üzemeltetni.
    • Minden webalkalmazáshoz csak egy profilozót csatolhat.

Kódoptimalizálások

  • Tárhelykövetelmények:
    • A kódoptimalizálás jelenleg csak az alapértelmezett Profilerrel vagy Application Insights-tárhellyel működik. Nem kompatibilis a Bring-Your-Own-Storage (BYOS) rendszerrel.

Hibaelhárítás

  • Profilkészítő

    Ha engedélyezte a profilkészítőt a .NET-hez, de nem lát nyomokat, nézze meg a Hibaelhárítási útmutatót.

  • Kódoptimalizálások

    Problémákba ütközik? A forgatókönyv-megoldásokhoz tekintse meg a kódoptimalizálás hibaelhárítási útmutatóját .

Megtudhatja, hogyan engedélyezheti a .NET profilkészítőt kódoptimalizálással a Azure szolgáltatásban: