Cela signifie attendre "File I / O", c'est-à-dire tout appel en lecture / écriture sur un fichier qui se trouve dans le système de fichiers monté, mais compte également probablement le temps d'attente pour échanger ou charger des pages en mémoire, par exemple les bibliothèques non encore en mémoire, ou des pages de fichiers mmap () qui ne sont pas dans le ram.
Il ne compte PAS le temps passé à attendre les objets IPC tels que les sockets, les tuyaux, les ttys, select (), poll (), sleep (), pause () etc.
Fondamentalement, il est temps qu'un thread passe à attendre un disque-IO synchrone - pendant ce temps, il est théoriquement capable de s'exécuter mais ne peut pas parce que certaines données dont il a besoin ne sont pas encore là. De tels processus apparaissent généralement dans l'état "D" et contribuent à la moyenne de charge d'une boîte.
Confusément, je pense que cela inclut probablement les E / S de fichiers sur les systèmes de fichiers réseau.
le temps d'attente est le temps qu'un processus passe dans le planificateur d'E / S du noyau. Pour autant que je sache, cela n'a rien à voir avec les E / S réseau dans la mesure où les connexions de socket régulières vont. Cependant, cela comprendra le temps passé à attendre les systèmes de fichiers réseau comme NFS.
la source
Cela fait.
Soit dit en passant, l'un des serveurs que je gère connaît un niveau élevé qui est dû à un mauvais montage NFS.
Et regardez les processus dans l'
D
état.la source
L'iowait comprend les appels réseau. Je dis cela, car NFS est géré comme autant de systèmes de fichiers locaux Linux du point de vue du noyau:
Lorsque les processus appellent une écriture sur le descripteur de fichier 5, quelque chose comme cela se produit:
Ainsi, le processus ne sait pas quel type de système de fichiers utilise (vfs magic) et l'iowait est le même que pour un système de fichiers local.
la source