运行没有3GB日志文件的MongoDB配置服务器


9

对于生产分片的MongoDB安装,我们需要3台配置服务器。根据文档“配置服务器mongod进程相当轻巧,可以在执行其他工作的计算机上运行”。但是,在默认配置中,它们都启用了日记功能,并且使用预分配功能会占用3 GB的磁盘空间。我认为配置服务器的实际数据和事务量很小,因此这似乎太多了。

有没有一种方法(安全!)运行这些配置服务器,而日志使用的磁盘却少得多?我是否需要在配置服务器上进行日志记录?我可以设置较小的日志大小吗?

Answers:


10

是的-有一些注意事项,有一种方法可以最小化日志文件的默认大小。从MongoDB配置文档中

为了减少日记功能对磁盘使用率的影响,可以启用日记功能,并将smallfiles设置为true以减小数据和日记文件的大小。

这是smallfiles配置信息:

设置为true可以修改MongoDB以使用较小的默认数据文件大小。具体来说,小文件可减小数据文件的初始大小,并将其限制为512 MB。smallfiles设置还将每个日志文件的大小从1 GB减小到128 MB。

如果您有大量的数据库,每个数据库都存储少量数据,请使用smallfiles设置。smallfiles设置可能导致mongod创建许多文件,这可能会影响较大数据库的性能。


0

您可以复制的某些成员使用日记功能,而其他成员则不能。[1]

您可以使用命令行“ --smallfiles”将jounral大小设置为较小。[2]


并推荐其中任何一种吗?
Thilo

MongoDB会对日记文件进行预分配,以避免以后浪费时间。如果您担心磁盘空间多于性能,则可以选择。我建议在所有机器上都保留日记功能,而您永远不知道何时以及如何发生崩溃。您永远不会太安全。
尼康,2011年

1
这当然是一个很好的指导方针。但是,询问的人想知道配置服务器是否具有需要3GB日志的事务量,并且除了崩溃后更快的启动时间以外,是否还有其他好处(请注意,对于3台配置服务器,不应该有日志)会丢失任何数据,即使没有日志记录,对吗?)还有少量的仅配置数据,速度会快多少。在我看来,此处的规则对于副本节点和配置服务器应该有所不同。例如,文档说“如果一天之内可以恢复其中的一个就可以了”。
Thilo

0

您可以使用--nojournal选项启动mongod,但我可以肯定您的配置服务器备份。


1
与在三台不同的计算机上拥有三台配置服务器相比,我还需要多少确定性?另外,备份配置服务器的程序是什么?如果我在每次更改后都不备份(例如添加了集合或分片事件),那么我将无法从这些过时的备份中恢复,对吗?
Thilo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.