为什么大多数磁盘IO归因于jbd2而不归因于实际使用IO的进程?


16

监视磁盘IO时,大多数IO都归因于jbd2,而导致较高IO的原始进程则归因于较低的IO百分比。为什么?

iotop是示例输出(省略了IO <1%的其他进程):

在此处输入图片说明


是这个data=journal吗?
DepressedDaniel

@DepressedDaniel不确定您的意思。我刚刚使用了iotop -oP
Sparkler

Answers:


16

jbd2 是更新文件系统日志的内核线程。

跟踪导致该进程的文件系统或磁盘活动很困难,因为许多进程的活动被组合在一起。例如,如果两个进程同时从同一个文件中读取,则应考虑哪个进程读取?如果两个进程写入同一目录,并且该目录仅在磁盘上更新一次(将这两个操作结合在一起),那么将考虑哪个进程进行写入?

在您的情况下,似乎大多数流量都包含日记的更新。这被追溯到日志更新器,但是在日志更新和导致需要此日志更新的写操作的进程之间没有跟踪。


2
除日志更新外,还有哪些其他磁盘io类别?(即,为什么jdb2不是iotop输出中的唯一条目?)
Sparkler

@Sparkler也正在写实际数据。(除非您使用的是日志结构的文件系统,但大多数都没有。)
Gilles'SO-别再作恶了

这就解释了会发生什么。但是,当原始进程的I / O优先级设置为“空闲”并且jbd2继续以其自己的I / O优先级继续执行大量I / O时,这很费时间。
jlh
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.