Linux fornisce diversi potenti strumenti per monitorare le prestazioni del sistema, in particolare l’utilizzo di memoria e CPU. A volte dobbiamo identificare i processi che consumano molta memoria e CPU per risolvere i problemi di prestazioni. Puoi usare utilità di sistema preinstallate come ps, comandi top o strumenti esterni come htop, vmstats ecc. Ogni strumento ha diversi vantaggi.
1. Utilizzo del comando ps
Il comando “ps” è uno degli strumenti più versatili per visualizzare informazioni sui processi in esecuzione. Puoi facilmente filtrare i campi di output e ordinarli in base a criteri specifici.
In base all’utilizzo della memoria: per elencare i primi 10 processi in base all’utilizzo della memoria, è possibile utilizzare il seguente comando:
ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head
Questo output mostra i processi ordinati in base all’utilizzo della memoria insieme al loro PID, comando e utilizzo della CPU.
In base all’utilizzo della CPU: per elencare i primi 10 processi in base all’utilizzo della CPU, eseguire:
ps -eo pid,cmd,%mem,%cpu --sort=-%cpu | head
Questo output mostra i processi ordinati in base all’utilizzo della CPU insieme al loro PID, comando e utilizzo della memoria.
2. Utilizzo del comando top
Il comando top è un’utilità interattiva che visualizza informazioni in tempo reale sulle prestazioni del sistema, compresi i processi che consumano più CPU e memoria.
Esegui il comando:
top
- Premi M: ordina i processi in base all’utilizzo della memoria.
- Premi P: ordina i processi in base all’utilizzo della CPU.
Personalizzazione dell’output:
Per elencare un numero specifico di processi e uscire dopo aver visualizzato l’output:
top -b -n 1 | head -n 17
- -b: Modalità batch per la creazione di script.
- -n 1: Aggiorna una volta ed esce.
3. Combinazione di ps con altri comandi
È possibile utilizzarlo ps
in combinazione con altre utilità come awk
o grep
per filtrare i processi in base a criteri specifici.
Utilizzare il seguente comando per trovare tutti i processi che consumano più di una certa percentuale di memoria:
ps -eo pid,cmd,%mem,%cpu --sort=-%mem | awk '$4 > 5.0'
Questo comando elenca i processi che utilizzano più del 5% di memoria. Allo stesso modo, puoi ordinare l’output in base all’utilizzo della CPU.
4. Automazione del monitoraggio dei processi
Per automatizzare il monitoraggio, è possibile pianificare i comandi tramite cron e registrare i risultati per un’analisi successiva.
Esempio di Cron Job:
*/5 * * * * ps -eo pid,cmd,%mem,%cpu --sort=-%mem | head >> /var/log/process_monitor.log
In questo modo vengono registrati ogni 5 minuti i processi che consumano più memoria.
Conclusione
Questo è un compito essenziale per identificare tutti i processi che consumano più memoria e CPU per gestire le prestazioni del sistema. In questo articolo hai imparato a conoscere comandi come ps e top, che rendono questo compito facile ed efficiente. Monitorando regolarmente queste metriche, puoi assicurarti che il tuo sistema Linux funzioni senza problemi e risolvere efficacemente i colli di bottiglia delle prestazioni.