[Guida] Sysadmin GNU/Linux: effettuare l'I/O monitoring con iostat ed iotop
Uno dei compiti dell’amministratore di sistema è quello di ottimizzare le attività di input/output. Da questo punto di vista, ad esempio, è importante evitare dei colli di bottiglia nell’accesso alle risorse hardware, e capirne le possibili cause. Ciò è reso possibile grazie ad alcuni tool di I/O monitoring, come iostat ed iotop, che permettono al sysadmin di venire a conoscenza di cosa sta avvenendo, in modo tale da mettere a punto il sistema in base alle proprie esigenze hardware e software.
I/O Monitoring: raccogliere le evidenze
I problemi legati alle prestazioni del disco possono essere dovuti a molti fattori e, spesso, è solo grazie all’esperienza dell’amministratore di sistema che si riesce a scovarne le vere fonti. Bisogna comunque partire da alcune evidenze, per capire le ragioni del problema. Sono necessari, quindi, tool per il monitoring ed il tracciamento delle attività di I/O, così da localizzare le possibile cause di disk bottlenecks. Iostat è uno di questi tool. Per la realizzazione di questa guida sto utilizzando come distribuzione di riferimento una Fedora 32 con KDE. Non implementa, di default, questo comando, che va installato con la seguente direttiva:
sudo dnf install sysstat
Possiamo considerare iostat come l’utility di base per il monitoring dell’I/O. Come si legge anche nella relativa pagina del manuale, richiamabile tramite la direttiva man iostat, questo comando viene utilizzato per monitorare il caricamento dei dispositivi di input/output del sistema, osservando anche le loro velocità di trasferimento medie. La schermata di output si apre con un sunto del carico della CPU. Successivamente passa all’elencazione delle statistiche di I/O, ed in particolare notiamo le seguenti informazioni, suddivise per partizioni e dispositivi, fisici o virtuali:
- Tps, ovvero le transazioni per secondo;
- I blocchi letti e scritti per unità di tempo;
- Il totale dei blocchi letti e scritti.
Iotop mostra anche la classe e la priorità dei processi
Altra utility utile per il monitoring delle attività di input/output è iotop. Anche in questo caso Fedora 32 non implementa il tool out of the box e va, quindi, installato eseguendo la direttiva sudo dnf install iotop. Questo comando, come si evince dal nome, è un po’ il parallelo, per le attività di input/output, del comando top. La schermata di output, infatti, mostra una tabella, aggiornata periodicamente, con le attività di I/O in corso. Un’opzione comoda da utilizzare è –only. Questa combinazione mostra soltanto i processi e i thread effettivamente impegnati in attività di I/O.
Tramite iotop si può ottenere un’altra informazione interessante, ovvero la classe ed il livello di priorità delle attività di I/O (colonna PRIO). In particolare i processi mostrati nell’immagine che vi ho riportato, appartengono alla classe best effort, che è quella predefinita, ed hanno priorità media. Quest’ultimo dato, che può assumere un valore compreso in un intervallo da 0 a 7, con 0 priorità massima, indica la quantità di tempo assegnata ad ogni processo.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.