强迫ext4lazyinit完成它的事情?


19

是否有任何方法可以“强制” ext4lazyinit以最大的优先级完成工作?诸如“我不在乎系统资源,只是尽您所能尽快完成工作”之类的东西?

我应该补充:不重新格式化驱动器。我知道mkfs的lazy_itable_init选项。


对我来说听起来很XY。您实际上想实现什么?
丹尼尔·B

3
我的Raspberry Pi花了多个小时才能在外部硬盘驱动器上完成ext4lazyinit。我想测试一段时间不活动后高清是否会正确旋转,但是由于ext4lazyinit导致无法实现。在查看了一些内核代码(github.com/torvalds/linux/blob/master/fs/ext4/super.c#L2931)之后,由于延迟是经过硬编码的,因此似乎无法强制完成线程。但是,这不是确定的答案,我既不是内核,也不是ext4专家,我只是瞥了一眼那个功能。
Marius 2014年

@Marius您对延迟进行了硬编码是正确的。
Moshe Katz

Answers:


16

为了“强制” ext4lazyinit以最大的优先级完成操作,您需要使用“ init_itable = 0”挂载文件系统。默认情况下为10(有关详细信息,请参见下面的链接)

替代解决方案是通过挂载选项' noinit_itable ' 禁用ext4lazyinit线程,但这在生产系统上可能不是一个好主意(有关详细信息,请参见下面的链接)。

来源,这里有详细信息ext4lazyinit git commit comment


2
为了获得可用于重新安装(不关衬里)命令,您可以运行mount | grep /path/to/mount/point | sed -E 's/^.* on (.*) type ext4 \((.*)\)$/mount -o remount,init_itable=0,\2 \1/g'-这将输出类似mount -o remount,init_itable=0,rw,noatime,seclabel,stripe=512,data=ordered /path/to/mount/point
伊万奥康

-2

您可以将流程的“不错”级别设置为比其他流程更高的优先级。不知道它是否会使它运行得更快,如果设置得太高(优先级为-20),可能会对系统稳定性产生不利影响。

nice -n [nice value] [command]

1
很高兴会给它更多的CPU优先级,它需要的是更多的IO优先级,@ VencaBSpam有正确的解决方案
JensMühlenhoff18
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.