碎片化和 ext4

Fix*_*xee 7 ext4 sparse-files

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

我意识到P1并且P2正在并行运行,一个可能会领先另一个,但除此之外,最好让P1写入块 1,3,5,7,... 而P2写入 2,4,6,... ? 还是P1写 1,2,3,4,...n/2 和P2写 n/2+1, ...., n更好?

psu*_*usi 3

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

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

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