我们有一个由 3 个 Mongo 3.2.13 实例组成的集群,在启用日志的情况下运行,有数百个数据库和集合可以同时访问。
我们正在检查禁用日志的选项,以提高集群的性能。根据文档,WiredTiger 每 60 秒执行一次检查点,因此在崩溃的情况下,我们最多只能丢失 60 秒的数据。我们对此表示同意。
禁用日记功能还有其他风险/缺点吗?
我们有一个由 3 个 Mongo 3.2.13 实例组成的集群,在启用日志的情况下运行,有数百个数据库和集合可以同时访问。
我们正在检查禁用日志的选项,以提高集群的性能。根据文档,WiredTiger 每 60 秒执行一次检查点,因此在崩溃的情况下,我们最多只能丢失 60 秒的数据。我们对此表示同意。
禁用日记功能还有其他风险/缺点吗?
在运行禁用日志的集群时,我们观察到频繁的磁盘检查——大约每 3 秒一次。这令人困惑,因为文档特别提到每 60 秒创建一次检查点。
经过一番挖掘,我们发现了以下关于 mongo 的 Jira 的评论:
这意味着当日志被禁用并且有多个线程写入数据库时,检查点会变得频繁并减慢整个实例的速度。
当然,这是我们再次开启日记功能的充分理由。
如果您有不干净的关闭,当您重新启动 MongoDB 集群时,不能保证您的数据将处于一致状态。“一致”是指它可能在事务上是一致的,也可能不是。
我还认为如果出现问题,您将不会得到官方支持(如果您正在运行与 Mogodb.Inc 签订支持合同的企业版)。
我鼓励您阅读 Adam(MongoDB.Inc 的前雇员)的这个答案,该答案非常详细地回答了相同的问题。
我可以禁用日记功能以提高性能吗