GNU/Linux >> Tutoriels Linux >  >> Linux

Rapports d'E/S à partir de la ligne de commande Linux

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


Linux
  1. Avoir une vache à la ligne de commande Linux

  2. Enfermez-vous sur la ligne de commande Linux

  3. Utilisation de Stratis pour gérer le stockage Linux à partir de la ligne de commande

  4. Migrer un serveur Linux depuis la ligne de commande

  5. Principes de base de la ligne de commande Linux - Exécution de commandes à partir de la ligne de commande

Créer un collage de photos à partir de la ligne de commande Linux

Programmer le matériel à partir de la ligne de commande Linux

La ligne de commande Linux peut s'amuser de loin

Maîtrisez la ligne de commande Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande