Tutti gli articoli della Rubrica VPS:
- VPS: il trucco dei Core nei Cloud Server
- VPS (seconda parte): il trucco delle SSD
- VPS (terza parte): valutare le prestazioni
- VPS (quarta parte): troubleshooting di base in Linux
Linux è un sistema dotato di innumerevoli strumenti diagnostici utilizzabili attraverso l’interfaccia a linea di comando (CLI) che permettono all’amministratore di sistema di identificare e risolvere in modo molto approfondito eventuali problemi e malfunzionamenti. Nonostante le limitazioni tipiche di un ambiente testuale, questi programmi di supporto sono molto potenti in quanto possono essere richiamati mediante semplici comandi o inseriti all’interno di script automatizzati. In questo articolo parliamo di alcuni dei più comuni: top, ps e netstat.
top e htop: processi, carico e memoria sotto controllo
Top è il comando utilizzato per identificare i processi, un indicatore chiaro dello stato di salute del sistema e permette di controllare parametri come la percentuale di utilizzo di CPU e memoria oltre allo stato dei processi attivi in tempo reale
Una volta lanciato il comando da prompt ci si trova di fronte a una tabella estremamente schematica, dove le informazioni sono organizzate per colonna. Nonostante lo sguardo possa correre subito a consultare la tabella, è molto importante osservare anche i parametri indicati sopra di essa.
Infatti una situazione comune in cui si rilevi un calo delle performance complessive, si può identificare osservando l’andamento (probabilmente crescente) del parametro load average nonostante lo scarso utilizzo di CPU e memoria RAM. Anche l’innalzamento del parametro wait state (wa) è indicativo della fatica da parte del sistema a processare e smaltire le istruzioni.
Analizzando le colonne inferiori invece, si osserva che i processi sono rappresentati tramite il loro PID, mentre le colonne successive indicano l’utente che ha attivato il processo, la sua priorità, le percentuali di utilizzo delle risorse e altri parametri aggiuntivi.
Il livello grafico offerto dalla Shell linux è in ogni caso molto limitato, ma è stata implementata una versione evoluta di Top chiamata htop. A differenza di top, questo comando non è nativamente presente in Linux, è quindi necessario installarlo utilizzando il classico gestore dei pacchetti della vostra distribuzione preferita. Htop si presenta da subito con una veste grafica significativamente evoluta, seppur sempre basata sul concetto di Text User Interface (TUI).
Nella parte alta è stato inserito un grafico colorato per la rappresentazione del livello di carico del sistema, inoltre il sistema a menù consente di navigare all’interno dei processi, ordinarli, applicare filtri sulla lista ed effettuare ricerche. Anche il livello di interazione coi processi è aumentato, è infatti possibile aumentare e diminuire la priorità di un processo, oltre che terminarlo.
ps: un albero di applicazioni
Rimanendo nel contesto del monitoraggio processi, il comando di riferimento è ps, tool che permette di visualizzare uno snapshot dei processi in esecuzione, sia a livello utente, sia sull’intero sistema. Con l’aggiunta delle opzioni –faxu è possibile visualizzare l’alberatura dei processi e dei sotto-processi, unito ad indformazioni utili come utente, identificativo dei processo (PID) e stato del processo
netstat: chi si sta connettendo?
La maggior parte dei processi attivi durante il funzionamento di un sistema Linux, apre – o comunque utilizza nel corso della sua attività – una o più porte di rete. Alcuni segnali di malfunzionamento spesso vengono identificati da una variazione dello stato delle connessioni attive sia a livello di servizio, sia come utilizzo dello stesso. Il comando netstat lanciato con il parametro –putln identifica proprio le porte attualmente aperte e il servizio (o processo) di riferimento.
Lo stato di utilizzo del servizio a livello di rete è un altro potenziale elemento utile per diagnosticare cali di performance. Infine è possibile concatenare netstat con il comando grep o wc –l che permette di applicare filtri sui risultati ottenuti e di effettuare un conteggio sulle ricorrenze delle connessioni stabilite.