Lors de l'exécution de tâches d'administration dans des environnements Linux, il est idéal et conseillé d'avoir des outils et des utilitaires qui nous permettent d'avoir un contrôle beaucoup plus précis sur les données à analyser car de cette façon, nous simplifions et ordonnons notre tâche, nous permettant d'obtenir beaucoup plus résultats exacts.
L'un de ces utilitaires est iostat et aujourd'hui dans Solvetic nous analyserons comment nous pouvons l'utiliser pour obtenir des rapports directs, clairs et totalement fiables des éléments que nous gérons dans notre organisation quelle que soit la distribution utilisée, dans ce cas nous utiliserons Serveur Ubuntu 17.10.
Qu'est-ce que l'iostatIostat (statistiques d'entrée / sortie - statistiques d'entrée / sortie) est un utilitaire grâce auquel il sera possible d'obtenir des informations sur les composants d'entrée et de sortie du système, offrant à l'administrateur ou à l'utilisateur la possibilité d'identifier les problèmes de performances à la fois sur le disque local et des disques distants ou des informations générales sur le système d'exploitation.
En utilisant cette commande, il peut être utilisé pour contrôler la charge du périphérique d'entrée / sortie du système en observant le temps pendant lequel ces périphériques sont actifs par rapport à leurs taux de transfert moyens au sein du système.
Lorsque nous utiliserons iostat, il sera possible de générer des rapports pouvant être utilisés pour modifier la configuration du système et équilibrer de manière beaucoup plus efficace la charge d'entrée et/ou de sortie entre les disques physiques.
Le premier rapport généré par la commande iostat nous donne des statistiques sur le temps général depuis le début du processus de démarrage du système, ainsi, chaque rapport suivant couvre le temps écoulé depuis le rapport précédent; Toutes les statistiques seront rapportées chaque fois que nous exécuterons la commande iostat.
Ce rapport se compose d'une ligne d'en-tête CPU suivie d'une ligne de statistiques CPU et, si nous avons des systèmes multiprocesseurs, les statistiques CPU sont calculées dans tout le système sous forme de moyennes parmi tous les processeurs existants, puis une ligne d'en-têtes Device suivie d'une ligne de statistiques pour chaque appareil configuré.
1. Installer iostat sur Ubuntu 17.10
Par défaut dans cette distribution, iostat est inclus dans le package Ubuntu sysstat et nous pouvons l'installer simplement en exécutant la commande suivante :
sudo apt installer sysstat -y
AGRANDIR
2. Utiliser iostat dans Ubuntu 17.10
Étape 1
La première commande que nous pouvons exécuter est iostat qui affichera des informations sur l'utilisation du processeur et les statistiques d'E/S d'Ubuntu 17.10 :
AGRANDIR
Étape 2
Là, nous verrons des détails tels que:
- Dans la première ligne la version du noyau Linux et le nom d'hôte.
- Dans les deux lignes suivantes, nous verrons les statistiques du processeur, telles que l'utilisation moyenne du processeur, le pourcentage de temps d'inactivité du processeur et la réponse d'E / S, le pourcentage de délai d'attente du processeur virtuel et le pourcentage de temps d'inactivité du processeur dans le système.
- Dans les deux dernières lignes, nous pourrons voir le rapport d'utilisation de l'appareil, tel que le nombre de blocs de lecture et d'écriture par seconde et le nombre total de lectures de bloc et d'écriture par seconde qui ont été exécutées sur ledit appareil.
Étape 3
Par défaut, la commande iostat génère le rapport avec la date courante, donc, si on veut afficher l'heure courante, il faudra utiliser la commande suivante :
iostat -t
AGRANDIR
Étape 4
Pour le moment, nous voulons vérifier la version d'iostat, exécutez simplement ce qui suit :
iostat -V
AGRANDIR
Étape 5
Il convient de mentionner que, pour voir toutes les options, que nous indiquerons plus tard, nous pouvons utiliser la ligne suivante :
iostat -aide
AGRANDIR
3. Utiliser le mode iostat avancé dans Ubuntu 17.10
Dans certains cas, nous pouvons utiliser des paramètres plus avancés en fonction du type de demande demandée, certaines de ces options sont les suivantes.
Étape 1
Si nous voulons voir le rapport d'un appareil une seule fois, nous exécuterons la commande suivante :
iostat -d
AGRANDIR
Étape 2
Pour voir le rapport de cet appareil en continu toutes les 7 secondes, 4 fois de suite nous exécuterons la ligne suivante :
iostat -d 7 4
AGRANDIR
Étape 3
Si nous voulons voir les statistiques d'appareils spécifiques, nous utiliserons la commande suivante :
iostat -p sda
AGRANDIR
Étape 4
Nous pouvons voir les statistiques de divers appareils en même temps en exécutant ce qui suit :
iostat -p sda, sdb, sdcÉtape 5
Pour obtenir les statistiques d'E/S de l'appareil en Mo/seconde, nous allons exécuter la commande suivante :
iostat -m
AGRANDIR
Étape 6
Pour obtenir les informations spécifiques d'une partition étendue nous devons utiliser la commande suivante :
iostat -x "partition"
AGRANDIR
Étape 7
Pour afficher les statistiques d'utilisation du CPU, la commande à utiliser sera la suivante :
iostat -c
AGRANDIR
4. Rapports Iostat dans Ubuntu 17.10
Maintenant, nous pouvons voir que chacune des options à utiliser est pratique, mais chaque ligne contient une certaine valeur qu'à première vue nous ne pourrons pas très bien comprendre, c'est pourquoi Solvetic expliquera ce que chacune de ces valeurs signifie pour encore mieux comprendre les résultats générés par iostat sachant que la commande iostat génère trois types de rapports qui sont :
- Le rapport d'utilisation du processeur
- Le rapport d'utilisation de l'appareil
- Le rapport du système de fichiers réseau
Étape 1
Maintenant, les valeurs sont les suivantes. Dans le premier rapport généré par la commande iostat, nous avons des détails sur l'utilisation du processeur. Pour les systèmes multiprocesseurs, les valeurs CPU sont des moyennes globales sur tous les processeurs actifs. Le rapport a le format suivant :
% utilisateurAffiche le pourcentage d'utilisation du processeur qui s'est produit pendant l'exécution au niveau de l'utilisateur (application).
% agréableReflète le pourcentage d'utilisation du processeur qui s'est produit lors de l'exécution au niveau utilisateur avec une priorité élevée.
% systèmeAffiche le pourcentage d'utilisation du processeur qui s'est produit pendant l'exécution au niveau du système (noyau).
% attenteAffiche le pourcentage de temps pendant lequel le ou les processeurs étaient inactifs pendant lesquels le système avait une demande d'E/S disque en attente.
% volerAffiche le pourcentage de temps passé à attendre par inadvertance le ou les processeurs virtuels pendant que l'hyperviseur servait un autre processeur virtuel.
% inactifAffiche le pourcentage de temps pendant lequel le ou les processeurs étaient inactifs et le système n'avait pas de demande d'E/S disque en attente.
Étape 2
Le deuxième rapport généré par la commande iostat est le rapport d'utilisation du périphérique dans ce rapport de périphérique. Les statistiques sont fournies par périphérique physique ou par partition. Le rapport peut afficher les champs suivants, selon les indicateurs utilisés :
DispositifCette colonne fournit le nom du périphérique (ou de la partition), affiché sous la forme hdiskn pour les noyaux 2.2, pour le nième périphérique. Il est affiché sous la forme devm -n avec les noyaux 2.4, où m est le numéro de périphérique principal et n est un numéro distinctif. Avec les noyaux plus récents, le nom du périphérique sera affiché comme indiqué dans le répertoire / dev.
tpsIndique le nombre de transferts par seconde entrés dans l'appareil. Un transfert est une demande d'E/S vers l'appareil, cela peut être combiné avec plusieurs demandes logiques en une seule demande d'E/S vers l'appareil. Un transfert est de taille indéterminée.
Blk_read / sFait référence à la quantité de données lues à partir de l'appareil exprimée en nombre de blocs par seconde. Les blocs sont équivalents aux secteurs avec les noyaux 2.4 et ultérieurs et, par conséquent, ont une taille de 512 octets. Avec des noyaux plus anciens, un bloc a une taille indéterminée.
Blk_wrtn / sIndique la quantité de données écrites sur l'appareil exprimée en plusieurs blocs par seconde.
Blk_readC'est le nombre total de blocs lus.
Blk_wrtnC'est le nombre total de blocs écrits.
Ko_lecture / sIndique la quantité de données lues à partir de l'appareil exprimée en kilo-octets par seconde.
kB_wrtn / sIndique la quantité de données écrites sur le périphérique exprimée en kilo-octets par seconde.
kB_lireC'est le nombre total de kilo-octets lus.
kB_wrtnC'est le nombre total de kilo-octets écrits.
Mo_lecture / sFait référence à la quantité de données lues à partir de l'appareil exprimée en mégaoctets par seconde.
Mo_wrtn / sFait référence à la quantité de données écrites à partir de l'appareil exprimée en mégaoctets par seconde.
MB_lectureC'est le nombre total de mégaoctets lus.
MB_wrtnC'est le nombre total de mégaoctets écrits.
rrqm / sIl s'agit du nombre de demandes de lecture fusionnées par seconde qui ont été mises en file d'attente sur le périphérique.
wrqm / sIl s'agit du nombre de demandes d'écriture fusionnées par seconde qui ont été mises en file d'attente sur le périphérique.
r / sIl s'agit du nombre de requêtes de lecture qui ont été envoyées à l'appareil par seconde.
w / sIl s'agit du nombre de demandes d'écriture qui ont été envoyées au périphérique par seconde.
rsec / sIl s'agit du nombre de secteurs lus par l'appareil par seconde.
wsec / sIl s'agit du nombre de secteurs écrits de l'appareil par seconde.
rkB / sIl s'agit du nombre de kilo-octets lus à partir de l'appareil par seconde.
sem/sIl s'agit du nombre de kilo-octets écrits sur l'appareil par seconde.
rMB / sIl s'agit du nombre de mégaoctets lus à partir de l'appareil par seconde.
wMB / sIl s'agit du nombre de mégaoctets écrits sur l'appareil par seconde.
avgrq-szIl s'agit de la taille moyenne (en secteurs) des requêtes qui ont été envoyées à l'appareil.
avgqu-szIl s'agit de la durée moyenne de la file d'attente des requêtes qui ont été émises vers l'appareil.
attendreIl s'agit du temps moyen (en millisecondes) pour que les requêtes d'E/S émises pour le périphérique soient servies dans le système.
svctmIl s'agit du temps de service moyen (en millisecondes) pour les requêtes d'E/S qui ont été émises vers l'appareil.
%UtileIndique le pourcentage de temps CPU pendant lequel des requêtes d'E/S ont été émises vers l'appareil (utilisation de la bande passante pour l'appareil). La saturation de l'appareil se produit lorsque cette valeur est proche de 100 %.
Étape 3
Le troisième rapport iostat est le rapport NFS (Network File System) qui fournit des statistiques pour chaque système de fichiers réseau monté sur le système. Le rapport affiche les champs suivants :
Système de fichiersCette colonne affiche le nom d'hôte du serveur NFS suivi de deux-points et du nom du répertoire dans lequel le système de fichiers réseau est monté.
rBlk_nor / sIndique le nombre de blocs lus par les applications via l'interface d'appel système de lecture, un bloc a une taille de 512 octets.
wBlk_nor / sIndique le nombre de blocs écrits par les applications via l'interface d'appel du système d'écriture.
rBlk_dir / sFait référence au nombre de blocs lus à partir de fichiers ouverts avec l'indicateur O_DIRECT.
wBlk_dir / sIndique le nombre de blocs écrits dans les fichiers ouverts avec le drapeau O_DIRECT.
rBlk_svr / sFait référence au nombre de blocs lus depuis le serveur par le client NFS via une demande de lecture NFS.
wBlk_svr / sIndique le nombre de blocs écrits sur le serveur par le client NFS via une requête NFS WRITE.
opérations / sIndique le nombre d'opérations envoyées au système de fichiers par seconde.
rops / sIndique le nombre d'opérations de « lecture » qui ont été envoyées au système de fichiers par seconde.
wops / sFait référence au nombre d'opérations "d'écriture" qui ont été envoyées au système de fichiers par seconde.
5. Paramètres iostat généraux dans Ubuntu 17.10
Les paramètres que nous pouvons utiliser avec iostat sont :
-cGénérez le rapport d'utilisation du processeur.
-réGénérez le rapport d'utilisation de l'appareil.
-hAutoriser l'affichage du rapport NFS par choix - il est plus facile à lire pour un humain.
-kAffiche les statistiques en kilo-octets par seconde au lieu de blocs par seconde. Les données affichées ne sont valides qu'avec les noyaux 2.4 et ultérieurs.
-mIl génère des statistiques en mégaoctets par seconde au lieu de blocs ou de kilo-octets par seconde. Les données affichées ne sont valides qu'avec les noyaux 2.4 et ultérieurs.
-nAffiche le rapport NFS (Network File System). Cette option ne fonctionne qu'avec le noyau 2.6.17 et les versions ultérieures.
-p[{appareil [,…] | ALL}] : L'option -p affiche les statistiques des périphériques en mode bloc et de toutes leurs partitions utilisées par le système. Si nous ajoutons un nom de périphérique sur la ligne de commande, les statistiques et toutes ses partitions seront affichées. Enfin, le mot clé ALL indique que les statistiques doivent être affichées pour toutes les partitions et périphériques de blocs définis par le système.
-tImprime l'heure de chaque rapport généré. Le format d'horodatage peut dépendre de la valeur de la variable d'environnement S_TIME_FORMAT.
-VImprimer la version d'iostat utilisée.
-XAfficher des statistiques étendues.
-zIndique à iostat d'ignorer la sortie de tout périphérique pour lequel il n'y a aucune activité pendant la période d'échantillonnage sélectionnée.
Comme on peut le voir, iostat est plus qu'un simple utilitaire système, il faut en tirer le meilleur parti et ainsi gérer nos systèmes d'exploitation de manière beaucoup plus complète.