GNU/Linux >> Linux Esercitazione >  >> Linux

Report di I/O dalla riga di comando di Linux

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. ]


Linux
  1. Configura un'area di lavoro Linux in remoto dalla riga di comando

  2. 8 suggerimenti per la riga di comando di Linux

  3. Avere una mucca sulla riga di comando di Linux

  4. Entra nella riga di comando di Linux

  5. Come installare il software dalla riga di comando di Linux

Crea un collage di foto dalla riga di comando di Linux

Programma hardware dalla riga di comando di Linux

La riga di comando di Linux può portare divertimento da lontano

Padroneggia la riga di comando di Linux

Come cercare file dalla riga di comando di Linux

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando