我正在设置一个mongoDB副本集,我想要做的第一件事情之一就是在文件系统上closures一个时间。 经过这一番研究,我并不反对这样做,但是我不得不问,什么时候使用? 我已经search了互联网,发现“这个applciaiton或这个过程使用一段时间,你会愚蠢的,如果你把它closures”的方式很less的方式警告,但作为一个偏执的人性质,我不得不怀疑。
那么,什么使用一段时间,如果我把它关掉,什么可以打破?
mutt
是一个电子邮件客户端,它使用文件访问时间监视到达mbox格式邮箱的新邮件。 显然这个问题不严重,很容易解决 。
除此之外,很难find一些在noatime
上突破的事例。 我在所有的文件系统上都运行了许多Linux服务器,而且我不记得曾经遇到任何由noatime
引起的问题。
如果你关心一般使用noatime
,你可以为你的mongoDB提供一个单独的文件系统,并且只安装noatime
文件系统。
编辑
我在kerneltrap.org发现了一个有趣的博客 ,引用了Linux开发人员(Linus Torvalds,Ingo Molnar,Alan Cox等)之间有关atime
的讨论。 在Ingo的第二封电子邮件中,他这样说:
…我对ext3没有真正的抱怨 – 必须具有“/ etc / fstab中的noatime,nodiratime”的必要条件。 这非常明显地加速了事情 – 特别是在访问大量文件时。 有趣的是,每个Linux桌面和服务器都受到明显的IO性能下降的影响,这是由于持续的时间更新,而只有两个真正的用户:tmpwatch [可以configuration使用ctime,所以这不是一个大问题]和一些备份工具。 (好吧,我也猜测邮件通知。)成千上万的应用程序。 因此,对于大多数文件工作负载,我们给Windows提供了20%-30%的性能优势,几乎没有任何问题。
轮询文件使用情况的工具,如临时文件清理程序使用它。 你可以通过使用relatime
代替在某些文件系统和操作系统上绕过它,它只会在上次更新后的一段时间内更新一次。
你也可以为你的mongoDB副本集创build一个独立的挂载点。 然后,您可以仅在该挂载点上设置noatime参数,而不会影响任何其他程序。
作为这里的后续,在2009年3月左右发布的2.6.30中, relatime
被作为内核的默认设置。 这意味着你从noatime设置中看到的收益在任何现代内核上都会less一些。
这仍然是一个build议,因为MongoDB仍然会有性能上的提升,但是只要你使用的是合理的内核版本,就没有以前那么重要了。
另外,除了这里提到的软件,我还看到了备份工具使用的一段时间。
星期一我只想强调一点–Steven – 使用一个单独的文件系统。
对于数据库来说,这总是一个不错的select,并且在调整数据库性能方面给您更多的灵活性,以避免额外的挂载点pipe理带来的不便。 通常会给你更多的备份数据库的选项(如果你可以快照和备份副本而不是主数据库,更加方便)