L’utilità top su Linux è uno strumento integrato in quasi tutte le distribuzioni che fornisce una vista in tempo reale sull’attività del sistema. Restituisce un elenco dinamico dei processi attivi, ordinati per utilizzo delle risorse, solitamente CPU e memoria. Grazie a top, è possibile conoscere quali processi stanno usando più risorse, ottenere dettagli tecnici, terminare i processi e intervenire sulle rispettive priorità.
Sebbene sia un vero e proprio punto di riferimento, top presenta alcune limitazioni: offre una visione generale del sistema, ma non fornisce dettagli approfonditi sui singoli thread o eventi kernel. Le opzioni di personalizzazione e filtraggio dei dati, inoltre, sono limitate; non restituisce alcun dettaglio sulle chiamate di sistema, sugli stati di sleep dei thread, sui punti o posizioni nel codice del kernel dove i processi sono messi in attesa.
Analisi delle prestazioni delle applicazioni sui sistemi Linux con 0x.tools, evoluzione dell’utilità top
0x.tools è una suite di strumenti open source per monitorare il funzionamento delle applicazioni su Linux. Sviluppato da Tanel Poder, questo software facilita la risoluzione sistematica dei problemi. Diversamente rispetto all’utilità top, con 0x.tools si acquisisce una “vista ai raggi X” che consente di esporre i dati sulle prestazioni del sistema, con la possibilità di esaminarli da diverse prospettive.
Appoggiandosi a eBPF (Extended Berkeley Packet Filter), la suite può offrire una panoramica del sistema oltre a un’analisi dettagliata dell’attività dei singoli thread e degli eventi kernel. Si rivela quindi un insieme di strumenti essenziale sia negli ambienti di sviluppo che di produzione.
Per usare x0.tools sono al momento necessari Ubuntu 24.04, RHEL 8.1 o similari. Non è escluso che il supporto sia in futuro esteso ad altre distro Linux.
Come installare e usare 0x.tools
Prima di usare 0x.tools, è necessario installare alcune dipendenze. È necessario ricorrere al gestore di pacchetti della distribuzione in uso:
Ubuntu
sudo apt-get update
sudo apt-get install -y build-essential linux-headers-$(uname -r) clang llvm libelf-dev libbpf-dev
RHEL
sudo yum install -y epel-release
sudo yum install -y kernel-devel-$(uname -r) clang llvm elfutils-libelf-devel
Al momento, è necessario scaricare il codice sorgente di 0x.tools da GitHub e compilarlo:
git clone https://github.com/0xraw/0x.tools.git
cd 0x.tools
make
Per avviare 0x.tools, è sufficiente impartire il comando sudo ./xcapture-bpf
Il repository GitHub contiene alcuni preziosi suggerimenti per modificare i file di configurazione di 0x.tools e usare parametri specifici.
Credit immagine in apertura: Copilot Designer.