Voir les entrées/ sorties disque avec iotop sous Linux
Sommaire
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 :
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 :
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 :
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
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"
Bonjour, merci de faire partager ce programme qui est très pratique pour jeter un coup d’œil sur les accès disques.
Est-il possible de savoir ou vont les données en cours d’écriture?
Cdt.
Up
up 🙂
Up bordel
up