文件数量会影响 fsck 的性能吗?

文件数量会影响 fsck 的性能吗?

运行时,包含 1,000,000 个文件的 100GB 磁盘会比包含 100 个文件的 100GB 磁盘花费更长的时间fsck吗?

答案1

这取决于文件系统和您在 fsck 中使用的开关。

fsck检查并尝试修复的内容给出了不带开关调用时 fsck 所执行操作的详细解释。

一些检查需要花费恒定的时间(例如,超级块检查),其中许多检查取决于 fsck 必须处理的 inode 数量(例如,链接数检查),其他检查取决于文件系统的大小(例如,常规数据块检查)。

如果没有该-c开关,fsck 不会检查常规文件的内容,因此文件的大小无关紧要。即使在检查坏块时,执行时间也只会随着文件系统的大小而增加。分区的哪一部分被占用不会影响执行时间。1

的数量索引节点文件系统的索引节点是恒定的,即在创建时决定。每个文件的元数据都存储在其中一个索引节点中。根据ext4,未使用的 inode 在 ext4 中被标记为未使用的 inode,但在 ext3 中没有。因此,fsck 的执行时间在 ext4 中随着文件数量的增加而增加,但在 ext3 中保持不变(且很高)。

下图说明了这一点:

比较

观察不同文件数用不同颜色表示。ext3 中 210 万、10 万甚至零个文件的图表完全相同。ext4 中 2.1M 和 10 万个文件的图表则显示出明显差异。

相比之下,对于 ext3,执行时间随着 inode 数量的增加而增加,而对于 ext4,未使用的 inode 不会影响执行时间。


1fsck -c通过在空分区上运行进行实证验证

相关内容