Il est également possible sous Linux d'obtenir des statistiques d'E/S par processus, afin que vous puissiez voir exactement qui lit et écrit beaucoup, en utilisant un programme nommé iotop. iotop doit être démarré avec l'utilisateur root. Vous pouvez utiliser iotop, par exemple, pour savoir à quelle vitesse votre disque dur peut lire et écrire, puis appuyez sur la touche q pour quitter. Lisez la section du manuel sur iotop pour en savoir plus sur ses raccourcis, par exemple pour trier les colonnes.
Afin de voir quel processus écrit sur le disque, nous pouvons utiliser la commande "iotop" pour obtenir ces informations
# iotop
Il affiche une sortie comme dans l'exemple suivant :
Total DISK READ : 0.00 B/s | Total DISK WRITE : 88.95 M/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 88.95 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27236 be/4 root 0.00 B/s 88.95 M/s 0.00 % 87.91% dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc 25600 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % less -s 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 22 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 6 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/u30:0] 7 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuos/0] 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcuob/0] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 13 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khelper] 14 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 15 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [perf] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [xenwatch] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [xenbus] 20 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 21 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 22 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 23 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 24 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto] 25 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kintegrityd] 26 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [bioset] 27 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kblockd] 28 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [md] 29 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [devfreq_wq] 31 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kswapd0] 32 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [fsnotify_mark] 1058 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % cupsd -f
Parmi les colonnes présentées ici, nous pouvons être intéressés par les suivantes :
- TID :Cette colonne fournit le PID du processus qui effectue les requêtes d'E/S. Cela peut être utilisé pour enquêter ou mettre fin au programme.
- LECTURE DU DISQUE :Cette colonne illustre le nombre d'octets lus par seconde par le processus répertorié.
- ÉCRITURE SUR DISQUE :Cette colonne détaille le nombre d'octets écrits par seconde par le processus répertorié.
- IO :Cette colonne affiche le pourcentage de temps passé par le processus répertorié à émettre des requêtes d'E/S.
- COMMANDE :cette colonne décrit le nom du processus qui gère les E/S. S'il s'agit d'un processus maître, il peut également inclure des commutateurs de ligne de commande.
Dans l'exemple ci-dessus, nous avons exécuté dans une autre session ssh un test dd (dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc) pour afficher l'action W/R allant sur le disque .
Si vous voulez voir uniquement les processus en cours d'écriture sur le disque, appuyez sur la touche "o" et vous obtiendrez une sortie comme :
Total DISK READ : 0.00 B/s | Total DISK WRITE : 86.90 M/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 86.90 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 27239 be/4 root 0.00 B/s 86.90 M/s 0.00 % 89.17 % dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc
Voici quelques-unes des options les plus courantes que nous pouvons utiliser :
- Appuyez sur la gauche et touches fléchées vers la droite pour changer le tri.
- Appuyez sur r pour inverser l'ordre de tri.
- Appuyez sur o uniquement pour voir les processus ou les threads effectuant réellement des E/S, au lieu d'afficher tous les processus ou threads.
- Appuyez sur p afficher uniquement les processus. Normalement, iotop affiche tous les fils de discussion.
- Appuyez sur a afficher les E/S accumulées au lieu de la bande passante. Dans ce mode, iotop affiche le nombre de processus d'E/S effectués depuis le démarrage d'iotop.
- Appuyez sur i pour changer la priorité d'un thread ou d'un ou plusieurs threads de processus, c'est-à-dire ionice.
- Appuyez sur q pour quitter iotop.
Reportez-vous aux pages de manuel pour plus d'informations.
# man iotop