顺序写为什么这么快?

顺序写快的原因有很多。

最重要的一个原因则是寻址问题,也就是要找到写入的磁盘空间,而后将磁头移动到对应的位置。很显然,随机写是每一次写入都要重新寻址,而顺序写则是找到一个位置之后就可以连绵不绝写下去。

除了这个最根源的原因以外,还有两个原因:一个是充分利用写缓冲,这也是局部性原理的一个体现。另外一个则是现代的文件系统会有意识地将偏向并且优化顺序写的性能。

简述

随机写寻址慢,局部性差,文件系统支持不友好

引导

局部性原理

当然,当下广泛使用的 SSD 也有类似的特性,但是原理上有些区别。这其中比较大的一个差异是虽然 SSD 也要寻址,但是没有机械硬盘那么慢,也不需要挪动磁头。

SSD 顺序写快的原因主要是局部性原理的应用,这源自两方面,一个是 SSD 写入是以页为单位的,也就是你写 1B 还是写入 1KB,都是按照页来写入的。另外一个是 SSD 同样会有缓存,顺序写也能更加好的利用这些缓存。