GNU/Linux >> Tutoriels Linux >  >> Linux

Comment déterminer quel processus écrit sur le disque sous Linux

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


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment partitionner un disque sous Linux

  3. Comment savoir quel processus utilise un fichier sous Linux ?

  4. Comment puis-je déterminer quel processus a un fichier ouvert sous Linux ?

  5. Déterminez dans quel(s) groupe(s) se trouve un processus en cours d'exécution ?

Comment créer des partitions sous Linux

Comment tuer un processus sous Linux

Comment répertorier les partitions de disque sous Linux

Comment tuer un processus sous Linux

Comment chiffrer une partition sous Linux

Comment déterminer ce qui utilise le plus d'espace disque sur un serveur Linux ?