Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
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:
- OpenTelemetria – platformfüggetlen, szállítósemleges szabvány a telemetriai adatok gyűjtéséhez és exportálásához
- .NET CLI-eszközök , például dotnet-counters
- dotnet-monitor – a nyomkövetések és telemetria gyűjtésére szolgáló ügynök
- A harmadik féltől származó kódtárak vagy alkalmazáskódok beolvashatják az információkat a , ILogger<TCategoryName>és System.Diagnostics.Activity az System.Diagnostics.MetricsAPI-kból.
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.