iostat
Lorsque vous constatez une diminution des performances sur un serveur, vérifiez en premier lieu l’utilisation des ressources, Des commandes comme ps ou htop sont assez pratiques, mais vous pouvez aussi ajouter à votre boîte à outils une commande qui vérifie le taux de I/O dans votre système.
Installation:
Sur Ubuntu, iostat peut être installé en installant le paquet sysstat.
apt install sysstat
Le paquet sysstat contient aussi d'autres commandes utiles: mpstat, pidstat and sar.
Utilisation:
Exécuter iostat sans arguments, aboutira à quelque chose de similaire à ceci:
Linux 4.4.0-143-generic (sputnik) 24/03/19 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.57 0.00 1.12 0.13 0.00 97.19
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
loop0 0.01 0.01 0.00 8 0
sda 12.76 361.62 9.82 260311 7072
Là vous pouvez voir l'utilisation du processeur et combien ont été écrites ou lues par seconde et au total depuis le démarrage pour chaque périphérique.
Voici quelques-uns des arguments d'iostat qui rendent les résultats plus lisibles:
- -m pour les statistiques en Mo au lieu de Ko.
- -p pour afficher une seule partition (exemple -p sda).
- -x peut être utilisé pour des statistiques étendues.
Voici une sortie combinant tous ces arguments:
Linux 4.4.0-143-generic (sputnik) 24/03/19 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.07 0.00 0.67 0.06 0.00 98.19
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.63 5.03 0.44 0.15 0.00 56.51 0.01 1.22 0.55 8.79 0.27 0.15
sda1 0.00 0.63 5.01 0.43 0.15 0.00 56.59 0.01 1.22 0.55 9.00 0.27 0.15
En mode étendu, vous devriez faire attention aux statistiques suivantes:
- avgqu-sz : la longueur moyenne de la file d'attente des demandes émises vers le périphérique.
- await : la durée moyenne (en millisecondes) des demandes d'I/O envoyées au périphérique à traiter.
- r_await: la durée moyenne (en millisecondes) des demandes de lecture envoyées au périphérique à traiter.
- w_await: la durée moyenne (en millisecondes) des demandes d'écriture adressées au périphérique à traiter.