如果日志文件在不同的文件系统中,为什么顺序写入会加快速度



根据MongoDB文档http://docs.mongodb.org/manual/core/journaling,

加快对当前日志文件,可以确保日志目录位于不同的文件系统

将日志文件存储在不同的文件系统上会加快速度。是因为两个不同的硬盘主轴在工作吗?只是想了解这个优化技巧的机制。

是,

如果您使用的是物理旋转硬盘,将日志活动分离到一个单独的(最好是专用的)物理驱动器上会带来显著的性能优势。

如果您使用的是SAN硬件,那么好处就不一样了。在某种程度上,现代硬盘中可用的更大的驱动器缓存减少了这种情况。SSD的情况又不同了。

旋转磁盘的主要因素是寻道时间,即读/写磁头到达磁盘正确部分所需的时间。硬盘排列成圆形磁道。为了到达磁盘上的特定块,磁头移动到正确的轨道,磁盘旋转到正确的位置(当然,磁盘一直在旋转,所以只需要等待正确的位置出现)。

这不需要太多时间,但当它发生很多时,它就会累积起来。

当主活动和日志活动在同一个驱动器上时,磁头必须在系统需要查看的两个(实际上很多)位置之间快速移动。

如果您在另一个物理驱动器上进行日志记录,那么该驱动器上的磁头几乎(或者更准确地说,相对而言)是静态的,能够更快地访问所需的正确磁道/位置。同时,另一个驱动器(上面有主活动)也将更高效,因为磁头不会在保持数据库运行所需的其他活动之间不断地寻找日志条目的写入位置。

这一好处适用于大多数数据库系统和许多其他应用程序,在这些应用程序中,在进行其他混合磁盘活动的同时,会不断对磁盘进行顺序写入。

如果您使用的是SAN,则不会得到相同的配置文件,因为即使它看起来是单独的文件系统,它实际上也可能跨许多缓存和共享的驱动器进行条带化。

SSD也有不同的配置文件,因为没有物理寻道时间。

最新更新