小编jlh*_*jlh的帖子

ext4 jbd2 和 I/O 优先级

我想删除一个包含 4000 多个目录中超过 600 万个文件的巨大目录,总共大约 26GB 的数据。我知道这将需要一段时间,我曾经ionice将 I/O 优先级设置为空闲,因此我可以在删除文件的同时继续执行其他任务。

time ionice -c3 rm -vrf /tmp/huge-folder
Run Code Online (Sandbox Code Playgroud)

然而,我的整个桌面环境现在仍然非常缓慢,谷歌浏览器需要很长时间才能打开新标签和加载页面,有时甚至需要一段时间才能打开一个新的 xterm 窗口。总结:我似乎没有得到降低rm进程I/O 优先级的任何好处。

检查情况iotop表明,一些 I/O 时间花费在rm具有idle我想要的I/O 优先级的进程中:

rm 上的 I/O

但是其他时候 I/O 时间花在了 ext4 的日志记录过程和软件突袭过程中:

jbd2 和 raid 上的 I/O

请注意他们如何使用自己的默认 I/O 优先级,这可能是问题的原因。 jbd2甚至以优先级运行,be/3这实际上比be/4我所有其他桌面进程的默认优先级更高。

许多其他问题询问并回答什么jbd2是以及为什么它会消耗 I/O 时间,这不是我想知道的。我的问题是:有没有办法在这种特定场景下真正获得空闲 I/O 调度优先级?显然,应用ionicejbd2是一个疯狂的想法。

更多设置信息:这是在带有 3 个旋转磁盘的软件 raid10 之上的 ext4 文件系统上。ext4 使用默认选项进行格式化和挂载(Debian 默认设置,以防万一)。

scheduling io ext4

7
推荐指数
1
解决办法
1374
查看次数

标签 统计

ext4 ×1

io ×1

scheduling ×1