SystemTap - SystemTap
První vydání | 2005 |
---|---|
Stabilní uvolnění | 4.4 / 9. listopadu 2020 |
Úložiště | |
Napsáno | C, C ++ |
Operační systém | Linux |
Typ | Trasování programovací jazyk |
Licence | GNU General Public License |
webová stránka | zdrojový software |
v výpočetní, SystemTap (sešít) je skriptovací jazyk a nářadí dynamicky přístrojové vybavení běžící výroba Linuxové jádro -na základě operační systémy. Správci systému mohou pomocí nástroje SystemTap extrahovat, filtrovat a sumarizovat data, aby umožnili diagnostiku komplexních problémů s výkonem nebo funkcemi.
SystemTap se skládá z bezplatný open source software a zahrnuje příspěvky od červená čepice, IBM, Intel, Hitachi, Věštec, University of Wisconsin-Madison a další členové komunity.[1]
Dějiny
SystemTap debutoval v roce 2005 v Red Hat Enterprise Linux 4 Aktualizace 2 jako náhled technologie.[2]
Po čtyřech letech vývoje byl v roce 2009 vydán SystemTap 1.0.[3]
Od roku 2011[Aktualizace], SystemTap běží plně podporován ve všech distribucích Linuxu včetně RHEL / CentOS 5[4] od aktualizace 2, SLES 10,[5] Fedora, Debian a Ubuntu.
Stopové body v CPython VM a JVM byly přidány v SystemTap 1.2 v roce 2009.[6]
V listopadu 2019 zahrnuto SystemTap 4.2 Prometheus vývozce.
Používání
Soubory SystemTap jsou psány v jazyce SystemTap[7] (uloženo jako .stp
soubory) a spusťte s sešít
příkazový řádek.[8]
Systém provede několik předání analýzy skriptu, než jej nechá spustit. Skripty mohou být prováděny s jedním ze tří backendů vybraných --runtime =
volba. Výchozí hodnota je a zaváděcí modul jádra, který má plnou schopnost kontrolovat a manipulovat s jakoukoli částí systému, a proto vyžaduje největší privilegium. Další backend je založen na dynamická analýza programu knihovna DynInst pro instrumentaci pouze vlastních programů uživatelského prostoru uživatele a vyžaduje nejmenší oprávnění. Nejnovější backend[9] je založeno na bajtový kód eBPF, je omezen na Linux schopnosti tlumočníka jádra a vyžaduje střední úroveň oprávnění. Po každém spuštění skriptu je modul uvolněn.
Skripty se obecně zaměřují na události (jako je spuštění nebo dokončení skriptu), zkompilované body sondy, jako jsou „stopové body“ Linuxu, nebo provádění funkcí nebo příkazů v jádře nebo v uživatelském prostoru.
Některé skripty v „guru režimu“ mohou mít také vložené C, které může běžet s -G
možnost příkazového řádku. Použití guru režimu se však nedoporučuje a každé vydání SystemTap obsahuje více bodů sondy určených k odstranění potřeby skriptů v guru režimu. K povolení skriptů je vyžadován režim Guru upravit stav v přístrojovém softwaru, například k použití některých typů nouzových bezpečnostních oprav.
Od verze SystemTap verze 1.7 software implementuje nový Stapsys úroveň skupiny a oprávnění.[10]
Jednoduché příklady
Následující skript ukazuje nastavení všech aplikací TCP zásuvka možnosti v systému, jaké možnosti se nastavují a zda je možnost nastavena úspěšně nebo ne.
# Zobrazit možnosti nastavení zásuvek# Návrat povolen nebo zakázán na základě hodnoty optvalfunkce getstatus(optval){ -li ( optval == 1 ) vrátit se „povolující“ jiný vrátit se „deaktivace“}sonda začít{ tisk („Checking for apps setting socket options“)} # Nastavte možnost zásuvky sonda tcp.setsockopt { postavení = getstatus(uživatel_int($optval)) printf ("Aplikace '% s' (PID% d) je možnost% s zásuvky% s ...", execname(), pid(), postavení, optstr) } # Zkontrolujte nastavení možnosti zásuvky sonda tcp.setsockopt.vrátit se { -li ( ret == 0 ) printf ("úspěch") jiný printf („selhalo“) printf ("") }sonda konec{ tisk ("Zavírání")}
Mnoho dalších příkladů je dodáváno se SystemTap.[11] Na stránce War Stories najdete také příklady použití SystemTap v reálném světě.[12]
Import skriptů z jiných sledovacích technologií
SystemTap lze připojit k DTrace značky, když jsou kompilovány do aplikace pomocí maker z sys / sdt.h
hlavičkový soubor.
Viz také
Reference
- ^ „Aktualizace SystemTap“. LWN.net.
- ^ „Dokumentace k produktu pro Red Hat Enterprise Linux“. červená čepice.
- ^ „Josh Stone - vydání SystemTap 1.0“.
- ^ „Dokumentace k produktu“. červená čepice.
- ^ 60951 (10. října 2006). „Volitelná aktualizace pro SystemTap“. Novell.CS1 maint: číselné názvy: seznam autorů (odkaz)
- ^ "Funkce / SystemtapStaticProbes - FedoraProject". Fedoraproject.
- ^ https://sourceware.org/systemtap/langref/
- ^ Porovnat Romans, Robb (2009). "SystemTap Language Reference: Průvodce konstrukcemi a syntaxí používanou ve skriptech SystemTap". Red Hat: 4. CiteSeerX 10.1.1.172.5186.
SystemTap [...] vyžaduje oprávnění root ke skutečnému spouštění objektů jádra, které vytváří pomocí příkazu sudo, aplikovaného na program staprun. [...] staprun je součástí balíčku SystemTap, věnovaného načítání a vykládání modulů a jádru - přenos dat uživatele.
Citovat deník vyžaduje| deník =
(Pomoc) - ^ Merey, Aaron (18. 10. 2017). "vydání systemtap 3.2". Citováno 2017-10-18.
Tým systemtap oznamuje vydání 3.2 [...] rané experimentální eBPF (rozšířený filtr Berkeley Packet) backend [...]
- ^ Eigler, Frank Ch. (2012-02-01). "vydání systemtap 1.7". Citováno 2013-03-26.
Tým systemtap oznamuje vydání 1.7 [...] Byla přidána nová skupina a úroveň oprávnění „stapsys“ [...]
- ^ "Příklady SystemTap".
- ^ "WarStories - Systemtap Wiki".
externí odkazy
- Oficiální webové stránky
- SystemTap Wiki
- Odkaz na jazyk SystemTap (PDF )
- Analýza projektu SystemTap od společnosti Ohloh
- Dynamické trasování pomocí DTrace & SystemTap
- Výukový program Systemtap Frank Ch. Eigler
- SystemTap Příručka pro začátečníky Don Domingo, William Cohen
- Řešení problémů s Systemtap, Ottawa Linux Symposium 2006
- Řešení problémů se SystemTap, Eugene Teo, představený na Summit Red Hat 2007 (skripty )
- Dynamické trasování a analýza výkonu pomocí SystemTap, Joshua Stone, představený na Konference LinuxWorld 2008
- Výukový program SystemTap, Jim Keniston, představený na Konference instalatérů Linuxu 2008