Pourquoi la plupart des E / S disque sont-elles attribuées à jbd2 et non au processus qui utilise réellement les E / S?

16

Lors de la surveillance des E / S de disque, la plupart des E / S sont attribuées à jbd2, tandis que le processus d'origine qui a provoqué la forte E / S se voit attribuer un pourcentage d'E / S beaucoup plus faible. Pourquoi?

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

entrez la description de l'image ici

Cierge magique
la source
C'est avec data=journal?
DepressedDaniel
@DepressedDaniel ne sais pas ce que vous voulez dire. Je viens d'utiliser iotop -oP
Sparkler

Réponses:

16

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 aucun 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.

Gilles 'SO- arrête d'être méchant'
la source
2
Quelles sont les autres catégories de disques io en dehors des mises à jour de journaux? (c'est-à-dire pourquoi jdb2 n'est pas la seule entrée dans la sortie d'iotop?)
Sparkler
@Sparkler Il y a aussi l'écriture des données réelles. (À moins que vous n'utilisiez un système de fichiers à structure logarithmique, mais la plupart ne le sont pas.)
Gilles 'SO- arrête d'être méchant'
Cela explique ce qui se passe. Mais cela craint beaucoup lorsque le processus d'origine «Priorité d'E / S a été défini sur« inactif »et jbd2continue simplement de faire beaucoup d'E / S à sa propre priorité d'E / S.
jlh