Lo iostat Il comando viene utilizzato per monitorare il caricamento del dispositivo di input/output del sistema osservando il tempo in cui i dischi fisici sono attivi in relazione alle loro velocità di trasferimento medie. Queste informazioni possono essere utilizzate per modificare la configurazione del sistema per bilanciare meglio il carico di input/output tra dischi fisici e adattatori.
Di seguito è riportato un esempio di output quando si esegue il comando iostat senza alcun argomento.
# iostat Linux 3.10.0-514.2.2.el7.x86_64 (geeklab) 11/07/2017 _x86_64_ (128 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.36 0.00 1.07 0.24 0.00 98.32 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 17.26 8.80 242.60 3795176 104664988 sdb 0.52 5.66 36.17 2440242 15603348 sdc 0.02 0.34 0.00 147313 0 sdd 0.01 0.09 0.00 39527 0 sde 0.01 0.10 0.00 41189 0 sdf 0.01 0.09 0.00 39025 0 .....
La prima riga mostra la versione del kernel Linux, il nome host, la data corrente, l'architettura e il numero di CPU sul tuo sistema.
Il rapporto sull'utilità iostat contiene le seguenti sezioni:
– Utilizzo della CPU
– Utilizzo del dispositivo
Rapporto sull'utilizzo della CPU
Le due righe successive mostrano le statistiche della CPU. Per i sistemi multiprocessore, i valori della CPU sono medie globali tra tutti i processori. Le colonne sono definite come segue:
%utente | La percentuale di CPU utilizzata durante l'esecuzione di applicazioni a livello di utente |
%nice | La percentuale di CPU utilizzata durante l'esecuzione a livello di utente con una buona priorità |
%sistema | La percentuale di CPU utilizzata durante l'esecuzione a livello di sistema (kernel) |
%iowait | La percentuale di tempo in cui le CPU sono rimaste inattive mentre il sistema aveva una richiesta di I/O del disco in sospeso |
%steal | La percentuale di tempo trascorso in attesa involontaria dalla o dalle CPU virtuali mentre l'hypervisor stava effettuando la manutenzione di un altro processore virtuale |
%inattivo | La percentuale di tempo in cui la CPU è stata (o le CPU erano) inattiva e il sistema non ha ricevuto una richiesta di I/O del disco in sospeso |
Rapporto sull'utilizzo del dispositivo
Le righe rimanenti nell'esempio visualizzano le statistiche per dispositivo fisico o per partizione. È possibile includere dispositivi a blocchi e partizioni come argomenti del comando iostat. Se non sono inclusi argomenti, il report mostra tutti i dispositivi per i quali il kernel ha le statistiche. Le colonne sono definite come segue:
Dispositivo | Nome del dispositivo o della partizione come elencato nella directory /dev |
tps | Numero di trasferimenti (richiesta di I/O) al secondo emessi al dispositivo |
kB_read/s | Quantità di dati letti dal dispositivo espressa in numero di kilobyte al secondo. |
kB_wrtn/s | Quantità di dati scritti sul dispositivo espressa in numero di kilobyte al secondo |
kB_read | Numero totale di kilobyte letti |
kB_wrtn | Numero totale di kilobyte scritti |
È possibile includere statistiche più dettagliate fornendo diverse opzioni al comando iostat. Sono elencate alcune delle opzioni della riga di comando:
-c | Visualizza il rapporto sull'utilizzo della CPU. |
-d | Visualizza il rapporto sull'utilizzo del dispositivo. |
-m | Visualizza le statistiche in megabyte al secondo. |
-x | Visualizza statistiche estese. |
È possibile eseguire più report a intervalli diversi utilizzando argomenti intervallo e conteggio. L'esempio seguente mostra 6 rapporti a intervalli di 2 secondi per tutti i dispositivi:
# iostat –d 2 6
Esempio di comando iostat
Esempio 1 – comando iostat
Per visualizzare le statistiche della CPU e dell'utilizzo del dispositivo di input/output, utilizzare il seguente comando:
# iostat Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 5.90 0.00 2.60 1.76 2.87 86.87 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 68.90 947.14 1117.86 340222 401546 xvdf 2.76 55.51 0.00 19940 0
Il primo output di iostat è la somma delle informazioni dall'avvio del sistema. Non abbiamo specificato alcun intervallo per l'esecuzione del comando iostat, quindi mostrerà informazioni di riepilogo dall'avvio del sistema per impostazione predefinita.
Esempio 2 – iostat con intervallo
Per poter vedere un andamento nelle statistiche o visualizzare continuamente le statistiche a intervalli regolari, utilizzare il comando iostat con intervallo fornito. Ad esempio, per riportare le statistiche ogni 5 secondi:
# iostat 5
Puoi anche limitare il numero di volte che le statistiche devono essere generate fornendo un numero di intervalli. Ad esempio per eseguire il comando iostat a intervalli di 5 secondi con solo 3 intervalli:
# iostat 5 3
Esempio 3 – Visualizza solo le statistiche della CPU
Per visualizzare solo le statistiche della CPU del sistema, utilizzare "-c ” opzione con iostat.
# iostat -c Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 2.64 0.00 1.20 0.78 1.34 94.03
Esempio 4:visualizzazione delle statistiche del disco
Un'altra opzione utile da utilizzare con iostat è "-d ” che mostra solo le statistiche del disco del sistema.
# iostat -d Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn xvda 28.82 389.03 465.87 340222 407421 xvdf 1.14 22.80 0.00 19940 0
Esempio 5 – Visualizzazione delle statistiche estese
Per visualizzare una statistica estesa con iostat, usa "-x " opzione. Ad esempio,
# iostat -x Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 1.52 0.00 0.71 0.45 0.83 96.50 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.03 1.57 11.38 6.75 242.60 288.58 58.59 0.17 9.13 0.91 23.00 0.42 0.76 xvdf 0.00 0.00 0.70 0.00 14.10 0.00 40.16 0.00 2.84 2.84 0.00 2.15 0.15
Esempio 6 – Combinazione di varie opzioni
Puoi sempre combinare diverse opzioni dagli esempi mostrati sopra. Con questo puoi visualizzare un rapporto sull'utilizzo del disco esteso a un intervallo di 2 secondi per 3 intervalli, come mostrato nell'esempio seguente.
# iostat -xdt 2 3 Linux 3.10.0-693.21.1.el7.x86_64 (jamiericho1.mylabserver.com) 03/16/2018 _x86_64_ (1 CPU) 03/16/2018 04:57:55 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.03 1.45 10.47 6.23 223.11 265.50 58.53 0.15 9.12 0.91 22.93 0.42 0.70 xvdf 0.00 0.00 0.65 0.00 12.96 0.00 40.16 0.00 2.84 2.84 0.00 2.15 0.14 03/16/2018 04:57:57 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 xvdf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 03/16/2018 04:57:59 AM Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util xvda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 xvdf 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Ecco,
-t – visualizzare il timestamp dell'intervallo