17/11/2024

Commandes et Système

Voir les entrées/ sorties disque avec iotop sous Linux

I. Présentation

Dans ce tutoriel, nous allons voir comment analyser les entrées et sorties disque sur un système Linux. La commande "iotop" (Input/ Output) non native à Linux nous permet en effet de vérifier les écritures (entrées) et lectures (sorties) sur notre disque.

II. Installation de la commande

Il nous faut déjà commencer par installer la commande qui n'est pas présente par défaut dans la plupart des cas :

apt-get update
apt-get install iotop

III. Utilisation

Ensuite nous pourrons simplement l'utiliser en saisissant "iotop" et voir ce que cela nous affiche :

iotop01

On voit donc la liste de nos processus avec plusieurs informations sur leur utilisation du disque. On voit également un total de l'utilisation tout en haut du tableau. Actuellement, aucun processus n'utilise le disque en lecture ou en écriture. On pourrais simuler une lecture du disque en exécutant la commande "tree" depuis la racine "/" qui va donc lister tous les répertoires du disques. On commence pour cela par installer cette commande :

apt-get install tree

 

puis on la lance. Sur un autre terminal on lancera "iotop" pour voir le résultat :

cd / && tree

Voici ce que nous pourrons voir :

LSOF04

On voit donc très bien que l'utiliser "root" a lancé la commande "tree" et que celle-ci lis le disque à une vitesse de 539.52K/s ce qui représente 94,11% des entrées/ sorties. On voit également une écriture dans le journal des logs ("[kjournald]").

IV. Voir les entrées/ sorties cumulées

On peut également voir une vue des lectures et écritures de façon cumulée, c'est à dire qu'on ne verra pas les I/O quand ils auront lieux mais on verra le total depuis le lancement de la commande. On doit pour cela utiliser l'option "-a" (pour "accumulated"). Nous allons simuler cette fois ci une écriture sur le disque en même temps. Sur un premier terminal nous lançons la commande "iotop" :

iotop -a

Nous verrons donc les entrées/ sorties de façon cumulée sur le disque.

V. Loguer les entrées/ sorties de façon permanente

On peut également loguer les entrées/ sorties pour des opérations de débogage par exemple. On utilisera alors l'option "-b" ("batch") qui va nous sortir une ligne pour chaque opération d'entrée/ sortie. On peut utiliser cette option de façon temporaire en écrivant les sorties dans un fichier comme suivant :

iotop -b > iotop.txt

 

Une petite astuce pour le débogage est d'utiliser l'option "-t" qui affiche également l'heure de l'entrée ou de la sortie :

LSOF03

VI. N'afficher qu'un processus

En tant normal, "iotop" affiche tous les processus, on peut spécifier à la commande un numéro de processus pour qu'iotop n'affiche que les entrées et sorties provenant de ce processus précis. On se chargera dans un premier temps de trouver le numéro du processus (PID) en question avec la commande "ps". Par exemple pour "mysql" :

ps -edf | grep mysql

LSOF02

On voit donc ici que le numéro du processus Mysql est "941", on lancera la commande "iotop -p <numéro du processus>" pour n'avoir que les entrées/sorties de ce processus.

Note : Les lectures et écritures MySQL se font à partir d'une session ouverte qui correspond à un PID différent. On ne verra donc pas les entrées/ sorties sur les tables depuis ce PID, il ne s'agit que d'un exemple pour spécifier un processus spécifique.

Plusieurs autres options peuvent être utilisées avec la commande "iotop", seules les plus utiles ont été exposées ici. Pour les voir, vous pouvez saisir "man iotop"

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

5 commentaires sur “Voir les entrées/ sorties disque avec iotop sous Linux

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.