稀疏文件中随机写入的 Ext4 分配模式

稀疏文件中随机写入的 Ext4 分配模式

如果我在 ext4 中创建一个大的(几 GB)稀疏文件,然后在没有其他繁重的写入负载的情况下,在整个长度内随机写入直到所有 4k 块都被“触及”,我是否可以期望 ext4 的延迟写入策略会拯救我并导致文件在磁盘上密集布局?

我的理解主要基于分配器将尝试保留整个范围(128mb 块),但将延迟写入这些块,直到内存压力或时间迫使刷新到磁盘。但是我不确定我是否理解了整个故事,尤其是考虑到文件与 RAM 相比足够大,文件系统会尝试在写入期间定期刷新,以免整个范围的页面被弄脏。

答案1

  1. 你说的on disk意思是物理上密集排列吗?如果这是你的意思,答案是否定的。磁盘上的控制器决定了你的数据如何物理放置(在大多数情况下)

  2. 如果您的意思是逻辑密集(就 Ext4 地址而言),那么是的,ext4 将为您保留足够的逻辑地址。

  3. 您对 ext4 的写入将不会立即被刷新(如果您没有使用直接 IO),直到页面缓存被操作系统刷新。

相关内容