
DTrace
A DTrace az teljes és dinamikus nyomkövetési és felügyeleti keretrendszer A termelési rendszerekben előforduló kernel- és alkalmazásproblémák valós idejű diagnosztizálására fejlesztették ki. A kezdetben Solaris számára készült DTrace-t más Unix-szerű operációs rendszerekre is portolták.
A DTrace-t fejlesztették ki a rendszergazdák támogatása a dinamikus nyomkövetési problémák hibaelhárításában a kernelben és a végalkalmazásokban a Solaris operációs rendszeren, és kompatibilis a BPF-et támogató szabványos Linux kernelekkel. Működéséhez szükség van a CTF hibakeresési formátummal kompatibilis libctf könyvtárra, amely a binutils csomagban található, vagy a libdtrace-ctf könyvtárra, amelyet a Solaris portál.
Ez az eszköz lehetővé teszi a rendszergazdák és a fejlesztők számára:
- Rendszerfigyelés: A DTrace részletes információkat nyújt a felhasználónak a számítógépes erőforrások, például a CPU, a memória és a tárhely használatáról, lehetővé téve a szűk keresztmetszetek azonosítását és a rendszer hatékonyságának javítását.
- Hibakeresési teljesítményproblémák: Lehetővé teszi a teljesítményproblémák valós időben történő azonosítását és diagnosztizálását, megkönnyítve a hibaelhárítást és a rendszer optimalizálását.
- A teljesítmény optimalizálása: Az alkalmazások viselkedéséről szóló részletes információkkal a DTrace lehetővé teszi a fejlesztők számára, hogy optimalizálják programjaik teljesítményét, és javítsák a rendszer általános hatékonyságát.
Egészen néhány évvel ezelőttig Az Oracle biztosította a DTrace támogatást a Linux számára és az eszközt egy felhasználói térfolyamat megvalósításaként kínálják, amely az eBPF alrendszert és a Linux kernel által biztosított szabványos nyomkövetési mechanizmusokat használja. Funkcióit tekintve a DTrace eBPF-alapú megvalósítása a DTrace for Linux első verziójához hasonlít, amelyet kernelmodulként valósítottak meg.
A DTrace 2.0.0-1.14-ről
Jelenleg A DTrace 2.0.0-1.14 verziójú, és két opcionális javítás formájában kerül terjesztésre A 6.7-es kernel esetében, amely lehetővé teszi, hogy speciális funkciókat használjon további adatok beszerzésére a modulokról és a kernelről, emellett a felhasználói térben zajló folyamatok nyomon követésére használt pid szolgáltató mostantól támogatja az utasítások végrehajtásának nyomon követését a rendszerben való eltolásuk szerint. felhasználói kód.
Támogatja a stack() és ustack() függvények használatát az összegyűjtött adatok aggregálása, az elemek eltávolítása bármilyen típusú asszociatív tömbből a literál 0 hozzárendelésével, ami megkönnyíti az adatok tömbökben történő kezelését.
A DTrace 2.0.0-1.14 számos lehetőséget kínál a rendszer különböző aspektusaihoz, beleértve a CPU-teljesítményszámlálókat, a funkciók korlátait, a zárolásokat, a folyamat életciklusát és egy új nyomtatási műveletet, amely típusjegyzetekkel ellátott strukturált adatokat generál, javítva a megfigyelési eredmények megjelenítését.
Amellett lehetővé teszi az adatok összesítését és az eredmények alapján műveletek végrehajtását új függvényekkel A cleanpath(), d_path() és link_ntop() integrálva lett, és lehetőség van a folyamatkövetési adatok (USDT) mentésére a dtprobed újraindítások között, biztosítva a nyomkövetés folytonosságát még az újraindítások után is.
Sőt, szintén Megjegyzendő, hogy hozzáadásra került a "-xcpu" paraméter, amely lehetővé teszi az ellenőrzések meghatározott CPU-khoz való kapcsolását, A "-xlockmem" opciót a felhasznált memória méretének korlátozására vezették be, optimalizálva a rendszer teljesítményét.
Támogatást adtunk a BTF-mechanizmushoz, amely típus-ellenőrzési információkat biztosít BPF pszeudokódban, és mostantól lehetséges a beállítási parancsfájl használata az összeállításhoz, leegyszerűsítve a hibakereső eszközkészlet konfigurálásának és testreszabásának folyamatát.
végre, ha az vagy érdekelne többet megtudni róla, ellenőrizheti a részletek a következő linken.
Szerezze be a DTrace-t
Az eszköz iránt érdeklődőknek tudniuk kell, hogy az Oracle előre beépített x86_64 és aarch64 DTrace userspace csomagokat kínál Oracle Linux 9 (UEK7 kernel), Oracle Linux 8 (UEK7 vagy UEK6 kernel) és Oracle Linux 7 (UEK6 kernel) rendszerekhez.
Míg más disztribúciók esetében egy sor függőséggel kell rendelkeznie, amelyeket ezen a linken tekinthet meg, és amelyek szükségesek a saját forráskódot.