假设我想使用
请不要提供“自己检查”的答案——我想从“文件系统”专家那里得到一些答案。
write(2)
系统调用将1 GB的数据写入到ext3
Linux文件系统上,并且在非常繁忙的环境下(许多类似的I/O并发处理),在不使用O_DIRECT
打开标志或使用O_DIRECT
时,使用区间[4 kB, 4 MB]
内的最佳缓冲区大小是什么?请不要提供“自己检查”的答案——我想从“文件系统”专家那里得到一些答案。
[16kb,1MB]
范围内并不重要...而且我认为它对大小并不是非常敏感...(真正的瓶颈是磁盘硬件)。 - Basile Starynkevitchstat
(例如stat(".")
)来获取文件系统的块大小。我认为结果会是一个很好的缓冲区大小。 - Some programmer dude_aligned_malloc
),还有另一个称为memalign
的函数,但有时可能没有实现。 - Matt