碎片和 ext4

碎片和 ext4

F假设我在 Linux ext4 文件系统上有一个稀疏文件,并且进程P1正在写入 50% 的不相交子集,F同时P2写入F.我想在文件“增长”时最大限度地减少碎片。 (我将“增长”放在引号中,因为该文件是预先分配为稀疏文件的,但是当块被写入时,它们会用实际数据填充幻像块。)

我意识到,自从P1P2并行运行以来,一个可能会领先于另一个,但除此之外,最好是在P1写入块 1,3,5,7,... 的同时P2写入 2,4,6,... ?或者更好地P1写 1,2,3,4,...n/2 并P2写 n/2+1,...., n?

答案1

内核会缓存写入内容,并在后台延迟地将它们刷新到磁盘,同时分配磁盘空间,从而最大限度地减少碎片。换句话说,你想太多了——别担心。

更具体地说,当它要刷新一些脏缓存缓冲区时,ext4 会分配足够的磁盘空间来保存缓存中的所有脏缓冲区,并保留额外的空间以供进一步增长。

您所描述的负载听起来很像位洪流。我最近通过 Bit torrent 下载了 Ubuntu 11.10 iso,检查后filefrag发现它只分成 3 个片段,对于 700mb 的文件来说这还不错。

相关内容