web-dev-qa-db-fra.com

Pourquoi la majeure partie du disque IO est-elle attribuée à jbd2 et non au processus qui utilise réellement l'IO?

Lors de la surveillance des E/S de disque, la plupart des IO sont attribués à jbd2, tandis que le processus d'origine qui a provoqué le IO élevé est attribué un pourcentage IO beaucoup plus faible. Pourquoi?

Voici l'exemple de sortie de iotop (autres processus avec IO <1% omis):

enter image description here

19
Sparkler

jbd2 est un fil du noyau qui met à jour le journal du système de fichiers.

Il est difficile de tracer l'activité du système de fichiers ou du disque avec le processus qui l'a provoqué, car les activités de nombreux processus sont combinées. Par exemple, si deux processus lisent à partir du même fichier en même temps, à quel processus la lecture sera-t-elle prise en compte? Si deux processus écrivent dans le même répertoire et que le répertoire n'est mis à jour sur le disque qu'une seule fois (en combinant les deux opérations), à quel processus l'écriture sera-t-elle prise en compte?

Dans votre cas, il semble que la majeure partie du trafic consiste en des mises à jour du journal. Cela est lié au programme de mise à jour du journal, mais il n'y a pas de suivi entre les mises à jour du journal et le ou les processus qui ont provoqué les opérations d'écriture qui ont nécessité cette mise à jour du journal.