Si vous avez suivi mes publications ici sur Enable Sysadmin, vous savez que j'ai précédemment travaillé en tant qu'ingénieur de support de stockage. L'une de mes nombreuses tâches dans ce rôle consistait à aider les clients à répliquer les sauvegardes de leurs environnements de production vers des baies de stockage de sauvegarde dédiées. Souvent, les clients me contactaient pour s'inquiéter de la vitesse de transfert des données de la production au stockage.
Maintenant, si vous avez déjà travaillé dans le support, vous savez qu'il peut y avoir plusieurs causes à un symptôme. Cependant, le débit d'un système peut avoir d'énormes implications pour les transferts de données massifs. Si tout va bien, nous parlons des heures, sinon... J'ai vu un seul travail de réplication prendre des mois.
Nous savons que Linux regorge d'outils utiles pour toutes sortes de problèmes. Pour le contrôle des entrées/sorties, nous utilisons le iostat
commande. iostat
fait partie de sysstat
package et n'est pas chargé sur toutes les distributions par défaut.
Installation et exécution de base
J'utilise Red Hat Enterprise Linux 8 ici et j'ai inclus la sortie d'installation ci-dessous.
[ Voulez-vous essayer Red Hat Enterprise Linux ? Télécharge le maintenant gratuitement. ]
REMARQUE :la commande s'exécute automatiquement après l'installation.
[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
Si vous exécutez la commande de base sans options, iostat
affiche les informations d'utilisation du processeur. Il affiche également les statistiques d'E/S pour chaque partition du système. La sortie comprend des totaux, ainsi que des valeurs par seconde pour les opérations de lecture et d'écriture. Notez également que le tps le champ est le nombre total de transferts par seconde délivré à un appareil spécifique.
L'application pratique est la suivante :si vous savez quel matériel est utilisé, alors vous savez dans quels paramètres il doit fonctionner. Une fois que vous combinez ces connaissances avec la sortie de iostat
, vous pouvez apporter des modifications à votre système en conséquence.
Courses à intervalles
Il peut être utile dans les phases de dépannage ou de collecte de données d'avoir un rapport exécuté à un intervalle donné. Pour cela, exécutez la commande avec l'intervalle (en secondes) à la fin :
[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
La sortie ci-dessus provient d'une exécution de 30 secondes.
Vous devez utiliser Ctrl + C pour quitter l'exécution.
Lecture facile
Pour nettoyer la sortie et la rendre plus facile à digérer, utilisez les options suivantes :
-m
modifie la sortie en mégaoctets, ce qui est un peu plus facile à lire et généralement mieux compris par les clients ou les responsables.
[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
vous permet de spécifier un périphérique particulier sur lequel vous concentrer. Vous pouvez combiner cette option avec le -m
pour un regard agréable et bien rangé sur un appareil particulièrement préoccupant et ses partitions.
[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
Statistiques avancées
Si les valeurs par défaut ne vous donnent pas les informations dont vous avez besoin, vous pouvez utiliser le -x
flag pour afficher les statistiques étendues :
[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
Voici quelques-unes des options auxquelles il faut prêter attention :
- avgqu-sz - longueur moyenne de la file d'attente d'une requête envoyée à l'appareil
- attente – durée moyenne des requêtes d'E/S envoyées à l'appareil à servir (millisecondes)
- r_await - temps moyen de traitement des requêtes de lecture (millisecondes)
- w_await - temps moyen de traitement des requêtes d'écriture (millisecondes)
Il existe d'autres valeurs présentes, mais ce sont celles à surveiller.
Arrêt
Cet article couvre à peu près tout ce dont vous avez besoin pour démarrer avec iostat
. Si vous avez d'autres questions ou avez besoin d'explications supplémentaires sur les options, assurez-vous de consulter la page de manuel ou votre moteur de recherche préféré. Pour d'autres trucs et astuces Linux, gardez un œil sur Enable Sysadmin !
[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]