Rendszer Érintse meg

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. június 10-én felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
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]

Hogyan működik

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:

  1. Először is, a SystemTap ellenőrzi a szkriptben használt tapset könyvtárat;
  2. A SystemTap ezután lefordítja a szkriptet C -re , és lefuttatja a rendszerfordítót , hogy a szkriptből kernelmodult hozzon létre ;
  3. A SystemTap betölti a modult, és elindítja a szkriptben lévő összes eseményt;
  4. Amint egy esemény bekövetkezik, az esemény kezelője végrehajtódik;
  5. Amikor az összes esemény befejeződött, a modul betöltődik, és a munkamenet véget ér.

Szkriptek

Események

Szinkron események

A szinkron események egy utasításhoz vannak kötve egy adott helyen a kernelkódban.

Példák szinkron eseményekre:

  • syscall.system_call
  • vfs.file_operation
  • kernel.function("függvény")
  • module("modul").function("function")
Aszinkron események

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:

  • begin - a SystemTap munkamenet kezdete
  • vége - vége a SystemTap munkamenetnek
  • timer.event() - időzítő visszaszámlálás (timer.s(4) - az esemény 4 másodpercenként indul)

Kezelők

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ó:

  • pid() – folyamatazonosító
  • uid() – felhasználói azonosító
  • execname() - folyamat neve
  • cpu () - processzorszám

Minta szkript

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


Lásd még

Jegyzetek

  1. LKML: "Frank Ch. Eigler": systemtap 3.3 kiadás . lkml.org. Letöltve: 2018. június 10. Az eredetiből archiválva : 2018. június 12.
  2. A System Tap frissítés . Letöltve: 2012. június 18. Az eredetiből archiválva : 2012. május 6..

Linkek

SystemTap főoldal