Megosztás:


Diagnosztikák a .NET-ben

A szoftver nem mindig a várt módon viselkedik, de a .NET olyan eszközökkel és API-kkal rendelkezik, amelyekkel gyorsan és hatékonyan diagnosztizálhatja ezeket a problémákat.

A natív AOT-telepítés egy olyan alkalmazásmodell, amely a .NET 7 óta érhető el. A natív AOT-alkalmazások .NET 8 diagnosztikai támogatásával kapcsolatos információkért lásd a natív AOT-diagnosztika című témakört.

Ez a cikk segít megtalálni a szükséges eszközöket.

Hibakeresők

A hibakeresők lehetővé teszik a program használatát. A kód szüneteltetése, növekményes végrehajtása, vizsgálata és folytatása betekintést nyújt a kód viselkedésébe. A hibakereső jó választás a könnyen reprodukálható funkcionális problémák diagnosztizálására.

Profilkészítők

A profilkészítők lehetővé teszik a program teljesítményének elemzését. A teljesítményproblémák diagnosztizálásához és megértéséhez adatokat gyűjthet a memóriahasználatról, a processzorhasználatról és más metrikákról.

A megfigyelhetőség rendszerezése

A .NET a metrikák, naplók és elosztott nyomkövetések használatával támogatja az iparági szabványos rendszerállapot-technikákat, amelyeket a megfigyelhetőség három alappilléreként ismerünk.

A rendszerállapot egy szoftverprojekthez hozzáadott kód, amely rögzíti, hogy mit csinál. Ezek az információk ezután összegyűjthetők fájlokban, adatbázisokban vagy memóriában, és elemezhetők a szoftverprogramok működésének megértéséhez. Ezt gyakran használják éles környezetben a problémák monitorozására és diagnosztizálására. A .NET-futtatókörnyezet beépített rendszerállapotokkal rendelkezik, amelyek opcionálisan engedélyezhetők, és olyan API-k, amelyek lehetővé teszik az alkalmazáshoz specializált egyéni kialakítás hozzáadását.

Naplók

A naplózás egy olyan technika, amelyben a kód egy napló készítésére szolgál, amely a program futása közben történt érdekes események rekordja. A naplóesemények alapkonfigurációja gyakran alapértelmezés szerint be van állítva, és igény szerint szélesebb körű naplózás engedélyezhető bizonyos problémák diagnosztizálásához. A teljesítményterhelés változó attól függően, hogy mennyi adatot naplóz.

A legtöbb esetben, akár meglévő projekthez ad naplózást, akár új projektet hoz létre, az ILogger-infrastruktúra jó alapértelmezett választás. ILogger Támogatja a gyors strukturált naplózást, a rugalmas konfigurációt és a gyakori fogadók gyűjteményét, beleértve a konzolt is, amelyet egy ASP.NET-alkalmazás futtatásakor lát. Emellett a ILogger felület számos külső naplózási implementáció homlokzataként is szolgálhat, amelyek gazdag funkcionalitást és bővíthetőséget biztosítanak.

Mértékek

A metrikák az alkalmazás teljesítményének és állapotának monitorozásához rögzített numerikus mérések. A metrikákat gyakran használják riasztások létrehozására, ha lehetséges problémákat észlelnek. A metrikák teljesítménybeli többletterhelése nagyon alacsony, és számos szolgáltatás konfigurálja őket mindig naprakész telemetriaként. A kivételeket gyakran metrikákként rögzítik, és összegezve csökkenthetik az adatok számosságát. További információ: Kivétel összegzése.

Elosztott nyomkövetések

Az elosztott nyomkövetés a naplózás speciális formája, amely segít a hibák és a teljesítményproblémák honosításában a több gépen vagy folyamaton keresztül elosztott alkalmazásokon belül. Ez a technika egy olyan alkalmazáson keresztül követi nyomon a kérelmeket, amelyek különböző alkalmazásösszetevők által végzett munkát korrelálnak, és elválasztják azokat az alkalmazás által az egyidejű kérések során végzett más munkától. Minden kérés nyomon követhető, és a mintavételezés opcionálisan a teljesítményterheléshez kötött.

Rendszerállapot gyűjtése

A rendszerállapot-adatok többféleképpen is kibocsáthatók az alkalmazásból, például:

Speciális diagnosztikák

Ha a hibakeresés vagy a megfigyelhetőség nem elegendő, a .NET támogatja a további diagnosztikai mechanizmusokat, például az EventSource-t, a memóriaképeket és a DiagnosticSource-t. További információkért tekintse meg a speciális diagnosztikai cikket.

Diagnosztikai eszközök

A .NET számos cli-eszközt támogat, amelyek az alkalmazások diagnosztizálására használhatók.

.NET Core diagnosztikai oktatóanyagok

Memóriaszivárgás hibakeresése

Oktatóanyag: A memóriaszivárgás hibakeresése végigvezeti a memóriaszivárgás keresésén. A dotnet-counters eszköz a szivárgás megerősítésére szolgál, a dotnet-dump eszközt pedig a szivárgás diagnosztizálására használják.

Magas processzorhasználat hibakeresése

Oktatóanyag: A magas processzorhasználat hibakeresése végigvezeti a magas processzorhasználat vizsgálatán. A dotnet-counters eszközt használja a magas processzorhasználat megerősítéséhez. Ezután végigvezeti a Trace teljesítményelemzési segédprogram (dotnet-trace) vagy Linux perf használatával a CPU-használati profilok gyűjtéséhez és megtekintéséhez.

Holtpont hibakeresése

Oktatóanyag: A holtpont hibakeresése bemutatja, hogyan használható a dotnet-dump eszköz a szálak és zárolások vizsgálatára.

ThreadPool éhezés hibakeresése

Oktatóanyag: A threadPool éhezés hibakeresése bemutatja, hogyan használhatja a dotnet-counters és dotnet-stack eszközöket a ThreadPool éhezés vizsgálatához.

StackOverflow hibakeresése

Oktatóanyag: A StackOverflow hibakeresése bemutatja, hogyan lehet hibakeresést StackOverflowException végezni Linuxon.

Linux-memóriaképek hibakeresése

A Linux-memóriaképek hibakeresése elmagyarázza, hogyan gyűjthet és elemezhet memóriaképeket Linuxon.

Teljesítmény mérése az EventCounters használatával

Oktatóanyag: A teljesítmény mérése az EventCounters használatával a .NET-ben bemutatja, hogyan mérheti a teljesítményt az EventCounter API-val a .NET-alkalmazásban.

Saját diagnosztikai eszköz írása

A diagnosztikai ügyfélkódtár segítségével saját, a diagnosztikai forgatókönyvnek leginkább megfelelő egyéni diagnosztikai eszközt írhat. További információ: Microsoft.Diagnostics.NETCore.Client API-referencia.