Vývoj a správa softwaru na Linuxu může být náročný, zvláště když se setkáte s neočekávaným chováním nebo problémy s výkonem. strace
je nástroj, který vám umožní nahlédnout do toho, co se děje "pod kapotou" vaší aplikace tím, že sleduje systémová volání mezi aplikací a jádrem operačního systému. V tomto článku prozkoumáme, jak strace
používat pro analýzu a diagnostiku aplikací na CentOS 7.
Instalace strace na CentOS 7
Než začnete strace
používat, musíte se ujistit, že je nainstalovaný na vašem systému. Na CentOS 7 můžete strace
nainstalovat pomocí správce balíčků yum
. Otevřete terminál a spusťte následující příkaz:
sudo yum install strace
Základní použití strace
Po instalaci můžete strace
spustit k analýze jakéhokoli spuštěného procesu. Základní syntaxe příkazu je:
strace [možnosti] [příkaz]
Pro spuštění strace
na již běžící proces použijte možnost -p
následovanou ID procesu (PID):
strace -p PID
Pokud chcete sledovat, jak aplikace spouští nové procesy, můžete přidat možnost -f
, která sleduje všechny dceřiné procesy vyvolané původním procesem.
Analýza výstupu
Výstup strace
může být na první pohled obtížně srozumitelný, ale poskytuje cenné informace o tom, jak aplikace interaguje s operačním systémem. Každá řádka výstupu obvykle obsahuje jedno systémové volání spolu s jeho argumenty a návratovou hodnotou. Například:
open("/etc/hosts", O_RDONLY) = 3
Tento řádek ukazuje, že aplikace se pokusila otevřít soubor /etc/hosts
pouze pro čtení (O_RDONLY
) a operace skončila úspěšně s návratovou hodnotou 3, což je file descriptor otevřeného souboru.
Použití pro diagnostiku problémů s výkonem
strace
může být také užitečný pro diagnostiku problémů s výkonem. Možnost -c
zobrazí souhrnnou statistiku systémových volání po ukončení sledování. To může pomoci identifikovat volání, která se používají nejčastěji nebo kde může docházet k zdržení.
strace -c -p PID
strace
je mocný nástroj pro vývojáře a správce systémů, který umožňuje hlubší porozumění chování aplikací na systému. Jeho schopnost sledovat systémová volání v reálném čase a poskytovat podrobné informace o interakcích mezi aplikacemi a jádrem operačního systému je neocenitelná pro diagnostiku a řešení problémů. S praxí a trpělivostí se strace
stane nezbytným nástrojem ve vašem vývojářském nebo administrátorském arzenálu.