Est-ce que l'heure d'attente inclut l'attente d'appels réseau?

La page de manuel proc(5) décrit iowait comme "le temps d'attente pour que l'IO soit terminé". Cela a surtout été expliqué dans une question antérieure. Ma question est la suivante: en attendant de bloquer IO, cela implique-t-il d'attendre le blocage du réseau IO ou seulement l'IO locale?

4 Solutions collect form web for “Est-ce que l'heure d'attente inclut l'attente d'appels réseau?”

Cela signifie attendre "Fichier I / O", c'est-à-dire tout appel de lecture / écriture sur un fichier qui se trouve dans le système de fichiers monté, mais il compte probablement probablement le temps d'échanger ou de charger des pages dans la mémoire, par exemple, les bibliothèques qui ne sont pas En mémoire encore, ou des pages de fichiers mmap () 'd qui ne sont pas en RAM.

Il ne compte PAS le temps d'attente pour les objets IPC tels que les sockets, pipes, ttys, select (), poll (), sleep (), pause () etc.

Fondamentalement, il est temps qu'un fil passe en attente d'un disque synchrone-IO – 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 disponibles. De tels processus apparaissent habituellement dans l'état "D" et contribuent à la moyenne de la charge d'une boîte.

Confusément, je pense que cela inclut probablement le fichier IO sur les systèmes de fichiers réseau.

Le temps d'iowait est la quantité de temps qu'un processus dépense 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 inclura le temps d'attente pour les systèmes de fichiers réseau comme NFS.

Cela fait.

Par ailleurs, l'un des serveurs que je gère me montre une expérience élevée qui est causée par un mauvais montage NFS.

 top - 06:19:03 up 14 days, 10:15, 3 users, load average: 9.67, 11.83, 12.31 Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 0.0%id, 99.7%wa, 0.0%hi, 0.0%si, 0.0%st top - 06:22:55 up 14 days, 10:19, 3 users, load average: 10.58, 11.13, 11.89 Tasks: 137 total, 1 running, 136 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 0.0%id, 99.8%wa, 0.0%hi, 0.0%si, 0.0%st 

Et regardez les processus dans l'état D

 root 27011 0.0 0.0 0 0 ? S 03:12 0:00 [nfsd4] root 27012 0.0 0.0 0 0 ? S 03:12 0:00 [nfsd4_callbacks] root 27013 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd] root 27014 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd] root 27015 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd] root 27016 0.0 0.0 0 0 ? D 03:12 0:01 [nfsd] 

Le iowait inclut les appels réseau, je dis cela, car nfs est géré autant de systèmes de fichiers locaux linux à partir du point de vue du noyau:

 vim linux-2.6.38.2/fs/nfs/file.c const struct file_operations nfs_file_operations = { .llseek = nfs_file_llseek, .read = do_sync_read, .write = do_sync_write, .aio_read = nfs_file_read, .aio_write = nfs_file_write, .mmap = nfs_file_mmap, .open = nfs_file_open, .flush = nfs_file_flush, .release = nfs_file_release, .fsync = nfs_file_fsync, .lock = nfs_lock, .flock = nfs_flock, .splice_read = nfs_file_splice_read, .splice_write = nfs_file_splice_write, .check_flags = nfs_check_flags, .setlease = nfs_setlease, }; 

Lorsque les processus appellent une écriture sur le descripteur de fichier 5, quelque chose comme ceci se produira:

 files->fd_array[5]->f_op->write(argv.......) 

Ainsi, les processus ne savent pas quel type de système de fichiers utilisent (vfs magic) et iowait est le même pour un système de fichiers local.

  • Dans bash script, quelle est la différence entre> et> | redirections?
  • même environnement shell dans tous les counts
  • Comment get le timezone d'une image système?
  • Comment puis-je m'assurer que mon server et MYSQL ont le même timezone?
  • Comment mettre à jour le text dans le file dans Script shell Unix
  • Comment éviter l'access racine accidentel à des directorys non lisibles dans le monde entier?
  • Quelles sont les différences principales entre le système Linux et FreeBSD du sharepoint vue sysadmin?
  • Comment pouvez-vous voir les process que vous avez mis en context?
  • puis-je supprimer les files dans le dossier proc sans conséquence?
  • Unix socket vs TCP / IP hôte: port
  • cp -p conservera des time pour certains files mais pas pour tous?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.