Rendszer Érintse meg | |
---|---|
Típusú | nyomon követése |
Fejlesztő | közösség |
Beírva | C++ , felhasználói szkriptek |
Operációs rendszer | Linux |
Első kiadás | 2005 |
Hardver platform | Linux |
legújabb verzió | 3.3 [1] (2018. június 8.) |
Engedély | GNU általános nyilvános licenc |
Weboldal | sourceware.org/systemtap/ |
A SystemTap egy olyan eszköz, amely lehetővé teszi a futó Linux rendszerrel kapcsolatos információk gyűjtését és elemzését .
Az olyan beépített eszközökkel ellentétben, mint a netstat , ps , top , a SystemTap-ot úgy tervezték, hogy több lehetőséget biztosítson az információk gyűjtésére és bemutatására.
A SystemTap egy parancssori felület és egy szkriptnyelv .
A rendszergazdák a SystemTap segítségével figyelhetik és elemezhetik a rendszer teljesítményét, a szoftverfejlesztők pedig a SystemTap segítségével elemezhetik az alkalmazások viselkedését egy futó rendszeren.
A SystemTap projekt fejlesztésében olyan cégek vesznek részt, mint a Red Hat , az IBM , az Oracle Corporation , a Hitachi . [2]
A SystemTap fő ötlete az események címkézése és kezelők hozzárendelése.
A szkript végrehajtása során a SystemTap figyeli az eseményeket, és amint egy esemény bekövetkezik, a rendszermag végrehajtja a kezelőt.
Az események lehetnek a SystemTap munkamenet eleje vagy vége, az időzítő lejárta és mások.
A kezelő a parancsfájl-utasítások sorozata, amely az esemény aktiválása után kerül végrehajtásra. A kezelők általában az eseménykörnyezetből kérnek le információkat, vagy jelenítenek meg információkat a képernyőn.
A SystemTap munkamenet akkor kezdődik, amikor végrehajtjuk a szkriptet. Ekkor a következő műveletsor történik:
A szinkron események egy utasításhoz vannak kötve egy adott helyen a kernelkódban.
Példák szinkron eseményekre:
Az aszinkron események nincsenek egy adott utasításhoz vagy a kernelkód meghatározott helyéhez kötve.
Példák aszinkron eseményekre:
Az eseménykezelőt kapcsos zárójelek ({}) zárják.
A képernyőre történő kimenethez a printf ("formátumkarakterlánc\n", argumentumok) formátumfüggvényt használjuk, amely hasonló a C hasonló függvényéhez .
Néhány SystemTap függvény a printf()-hez használható:
Forgatókönyv:
probe syscall.open { printf ("%s(%d) open\n", execname(), pid()) }Eredmény:
vmware-guestd(2206) megnyitva hald(2360) nyitva hald(2360) nyitva hald(2360) nyitva df(3433) nyitva df(3433) nyitva df(3433) nyitva hald(2360) nyitva