Monitoraggio, statistiche e test IOPS hard disk su Linux
I Tool per monitoraggio e test IOPS Linux sono molto comuni nelle distribuzioni, si possono utilizzare anche senza necessità di utilizzare dei LiveCD, li troviamo nel pacchetto sysstat
(in Debian e Centos)
Questo pacchetto è molto utile per avere report sull'utilizzo dei dischi, sia in lettura e scrittura che per quanto riguarda gli IOPS (Input/Output Per Second), ovvero le transazioni al secondo verso un disco o un array di dischi tipo RAID
Test IOPS Linux
È molto comune che ci venga richiesta Consulenza Linux per problemi di lentezza di un server, l'analisi preventiva dell'utilizzo delle risorse, solitamente comprende carico, uso della CPU, RAM, dischi, fra cui velocità di lettura e scrittura e IOPS
Per evitare che il problema non sia rilevato in tempo, solitamente adottiamo un monitoraggio real-time delle risorse, in grado di segnalare i parametri inusuali e garantire l'osservabilità degli utilizzi tramite grafici
Per stressare i nostri SSD o Hard Disk, possiamo utilizzare questi benchmark disponibili sulle maggiori distribuzioni Linux
hdparm
Sicuramente il più conosciuto e il più semplice, ci permette di testare in lettura utilizzando la cache e senza il nostro dispositivo avendo il report della velocità di lettura media
# hdparm -tT /dev/sda
Disk Dump dd
Effettua la copia bit a bit di un dispositivo, permette di avere le statistiche in lettura e scrittura della velocità media in MB/s
Attenzione: controllare bene if=input of=output
, si rischia di scrivere zeri su tutto il disco, se si utilizza come dispositivo di output
# dd if=/dev/sda of=/dev/null
# dd if=/dev/zero of=./zero.dd
Bonnie++
Un benchmark più completo, permette anche di esportare le statistiche su file html leggibile con qualsiasi browser
# bonnie++ -d /tmp/miadirectory -r <ram-presente> -u root | bon_csv2html > /tmp/report-bonnie.html
Flexible IO test
Altro benchmark completo per stressare gli IO sul nostro sistema: https://openbenchmarking.org/test/pts/fio
Statistiche IOPS
iostat
Riporta le statistiche in tps (IOPS), lettura, scrittura istantanee e dal precedente ciclo di statistica, il primo report può essere incoerente se lanciato senza parametri
E' necessario rilevare l'utilizzo del disco/RAID su un intervallo di tempo:
$ iostat -m 2 5 -d md1
Visualizza le statistiche degli IOPS ogni 2 secondi per 5 volte del device md1, raid software Linux MD
Se utilizzato senza specificare il device indica anche i dettagli dell'uso processore
Molto interessante è %iowait indica la percentuale della CPU consumata dall'attesa degli IO su disco
sar
$ sar -b 2 5
Come per iostat
visualizza le statistiche ogni 2 secondi per 5 volte e ci restituisce la media in questo caso su tutti i device presenti
iotop
Questo utilissimo comando è un semplice monitor degli IO simile a top e ci permette di ordinare tramite le frecce destra e sinistra i processi che effettuano più IO sui dischi
Inoltre visualizza la velocità di lettura e scrittura totale in MB/s