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

时间:2014-01-14 07:40:11

标签: mongodb

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

  

加速当前发生的频繁顺序写入   日志文件,您可以确保日志目录在   不同的文件系统

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

1 个答案:

答案 0 :(得分:2)

是的,

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

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

旋转磁盘的主要因素是寻道时间 - 读/写磁头到达磁盘右侧所需的时间。硬盘布置有圆形轨道。要到达磁盘上的特定块,磁头移动到正确的磁道,磁盘旋转到正确的位置(磁盘当然保持旋转,所以这只是等待正确的地方出现的问题) 。

这不需要花费太多时间,但是当它发生了很多时,它会加起来。

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

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

此优势适用于大多数数据库系统和许多其他应用程序,其中与其他混合磁盘活动同时持续顺序写入磁盘。

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

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