Se hai seguito i miei post qui su Enable Sysadmin, sai che in precedenza ho lavorato come ingegnere di supporto dello storage. Una delle mie numerose attività in quel ruolo era aiutare i clienti a replicare i backup dai loro ambienti di produzione su array di storage di backup dedicati. Molte volte i clienti mi contattavano preoccupati per la velocità di trasferimento dei dati dalla produzione allo storage.
Ora, se hai mai lavorato a sostegno, sai che possono esserci molte cause per un sintomo. Tuttavia, il throughput di un sistema può avere enormi implicazioni per massicci trasferimenti di dati. Se tutto va bene, stiamo parlando di ore, altrimenti... Ho visto che un singolo lavoro di replica richiede mesi.
Sappiamo che Linux è pieno di strumenti utili per ogni tipo di problema. Per il monitoraggio di input/output, utilizziamo iostat
comando. iostat
fa parte di sysstat
pacchetto e non viene caricato su tutte le distribuzioni per impostazione predefinita.
Installazione ed esecuzione di base
Sto usando Red Hat Enterprise Linux 8 qui e ho incluso l'output di installazione di seguito.
[ Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente. ]
NOTA :il comando viene eseguito automaticamente dopo l'installazione.
[root@rhel ~]# iostat
bash: iostat: command not found...
Install package 'sysstat' to provide command 'iostat'? [N/y] y
* Waiting in queue...
The following packages have to be installed:
lm_sensors-libs-3.4.0-21.20180522git70f7e08.el8.x86_64 Lm_sensors core libraries
sysstat-11.7.3-2.el8.x86_64 Collection of performance monitoring tools for Linux
Proceed with changes? [N/y] y
* Waiting in queue...
* Waiting for authentication...
* Waiting in queue...
* Downloading packages...
* Requesting data...
* Testing changes...
* Installing packages...
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
2.17 0.05 4.09 0.65 0.00 83.03
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 206.70 8014.01 1411.92 1224862 215798
sdc 0.69 20.39 0.00 3116 0
sdb 0.69 20.39 0.00 3116 0
dm-0 215.54 7917.78 1449.15 1210154 221488
dm-1 0.64 14.52 0.00 2220 0
Se esegui il comando di base senza opzioni, iostat
visualizza le informazioni sull'utilizzo della CPU. Visualizza anche le statistiche di I/O per ciascuna partizione del sistema. L'output include i totali, nonché i valori al secondo per le operazioni di lettura e scrittura. Inoltre, tieni presente che il tps campo è il numero totale di Trasferimenti al secondo rilasciato a un dispositivo specifico.
L'applicazione pratica è questa:se sai quale hardware viene utilizzato, allora sai con quali parametri dovrebbe funzionare. Una volta combinate queste conoscenze con l'output di iostat
, puoi apportare modifiche al tuo sistema di conseguenza.
Esecuzioni a intervalli
Può essere utile nelle fasi di risoluzione dei problemi o di raccolta dei dati eseguire un rapporto a un determinato intervallo. Per fare ciò, esegui il comando con l'intervallo (in secondi) alla fine:
[root@rhel ~]# iostat -m 10
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.94 0.05 0.35 0.04 0.00 98.62
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 12.18 0.44 0.12 1212 323
sdc 0.04 0.00 0.00 3 0
sdb 0.04 0.00 0.00 3 0
dm-0 12.79 0.43 0.12 1197 329
dm-1 0.04 0.00 0.00 2 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.24 0.00 0.15 0.00 0.00 99.61
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.00 0.00 0.00 0 0
sdc 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
dm-0 0.00 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.20 0.00 0.18 0.00 0.00 99.62
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.50 0.00 0.00 0 0
sdc 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
dm-0 0.50 0.00 0.00 0 0
dm-1 0.00 0.00 0.00 0 0
L'output sopra è da una corsa di 30 secondi.
Devi usare Ctrl + C per uscire dalla corsa.
Lettura facile
Per ripulire l'output e renderlo più facile da digerire, utilizza le seguenti opzioni:
-m
cambia l'output in megabyte, che è un po' più facile da leggere e di solito è meglio compreso da clienti o manager.
[root@rhel ~]# iostat -m
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.51 0.09 0.55 0.07 0.00 97.77
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 22.23 0.81 0.21 1211 322
sdc 0.07 0.00 0.00 3 0
sdb 0.07 0.00 0.00 3 0
dm-0 23.34 0.80 0.22 1197 328
dm-1 0.07 0.00 0.00 2 0
-p
consente di specificare un particolare dispositivo su cui concentrarsi. Puoi combinare questa opzione con -m
per uno sguardo curato e ordinato ad un dispositivo particolarmente inerente e alle sue partizioni.
[root@rhel ~]# iostat -m -p sda
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.19 0.07 0.45 0.06 0.00 98.24
Device tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 17.27 0.63 0.17 1211 322
sda2 16.83 0.62 0.17 1202 320
sda1 0.10 0.00 0.00 7 2
Statistiche avanzate
Se i valori predefiniti non ti forniscono le informazioni di cui hai bisogno, puoi utilizzare -x
flag per visualizzare le statistiche estese:
[root@rhel ~]# iostat -m -p sda -x
Linux 4.18.0-193.1.2.el8_2.x86_64 (rhel.test) 06/17/2020 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.06 0.06 0.40 0.05 0.00 98.43
Device r/s w/s rMB/s wMB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 12.20 2.83 0.54 0.14 0.02 0.92 0.16 24.64 0.55 0.50 0.00 45.58 52.37 0.46 0.69
sda2 12.10 2.54 0.54 0.14 0.02 0.92 0.16 26.64 0.55 0.47 0.00 45.60 57.88 0.47 0.68
sda1 0.08 0.01 0.00 0.00 0.00 0.00 0.00 23.53 0.44 1.00 0.00 43.00 161.08 0.57 0.00
Alcune delle opzioni a cui prestare attenzione qui sono:
- avgqu-sz - lunghezza media della coda di una richiesta inviata al dispositivo
- attesa - tempo medio per le richieste di I/O inviate al dispositivo da servire (millisecondi)
- r_await - tempo medio di elaborazione delle richieste di lettura (millisecondi)
- w_await - tempo medio di elaborazione delle richieste di scrittura (millisecondi)
Ci sono altri valori presenti, ma questi sono quelli a cui prestare attenzione.
Spegnimento
Questo articolo copre praticamente tutto ciò di cui hai bisogno per iniziare con iostat
. Se hai altre domande o hai bisogno di ulteriori spiegazioni sulle opzioni, assicurati di controllare la pagina man o il tuo motore di ricerca preferito. Per altri suggerimenti e trucchi per Linux, tieni d'occhio Enable Sysadmin!
[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]