如何通过 conf 文件(或其他持久方法)保持 Mongodb 日志很小

use*_*951 8 mongodb

这与我在 stackoverflow 中的问题有关,其中 vb.net 只是挂在更新 mongodb 查询上。

/sf/ask/894618091/#12796593

经过长时间的灵魂搜索,我们检查了日志。日志大小为 3GB。

这么大的原木绝对没用。我无法使用任何文本编辑器打开它。

如何保持 mongodb 的日志很小,比如最大 50 mb。

我们只对最后几个命令感兴趣,而不是整个日志。

MongoDB 中是否有相关设置?如果是这样,什么设置:

注意:问题类似于:https ://stackoverflow.com/questions/8777449/mongodb-log-file-size

然而,这个问题并没有问

我如何通过更改一些文本文件或一些持久的东西来做到这一点,以便每次启动 mongodb 时都保持设置。

小智 5

您可能已经知道答案,只需在这里为像我这样的人在这篇文章中结尾发布答案即可:D

vi /etc/mongo.conf
smallfiles = true
Run Code Online (Sandbox Code Playgroud)

一旦您重新启动 mongodb,这会将小文件设置为 true。

更新:

对 mongo 中的答案选项进行四舍五入,smallfiles其作用是减少初始数据文件和日志数据文件的大小,如果您的计算机没有太多空间,或者如果您将拥有多个数据库,每个数据库都包含小数据,那么这非常有用。

我个人认为smallfiles不会提高性能,但就像之前提到的那样,可以帮助解决这个特定的场景,另一个例子是 Docker,如果你不使用,-v "path/to/local/drive:"/data/db"那么在我的情况下,如果我不容器破坏,最好设置为smallfilestrue,因为它不能分配默认数据文件空间。

要添加smallfiles到 mongo.conf 你可以这样做:

echo "smallfiles = true" >> /etc/mongo.conf
service mongod restart
Run Code Online (Sandbox Code Playgroud)

更详细的信息在这里:http://docs.mongodb.org/manual/reference/configuration-options/#storage.mmapv1.smallFiles

希望这有帮助:D

重要更新: 从版本 4.2 开始,MongoDB 删除了smallfiles选项。

更多详细信息,请访问:https://docs.mongodb.com/manual/reference/program/mongos/#bin.mongos

因此,有关最新的可用选项,请查看更新后的手册: https: //docs.mongodb.com/manual/tutorial/rotate-log-files/


小智 3

看一下日志轮换。mongo 日志轮换

它将允许您自动创建多个较小的日志文件,就像 Web 服务器日志一样。只需删除旧的即可。

正如 Chris 指出的那样,您只需要一个可以容纳 3GB 文件的不错的文本处理器。对于那些正确存储映射文件的列表来说,这个列表出人意料地短,但记事本肯定不是其中之一,因为它只是像许多其他文件一样尝试将整个文件加载到 RAM 中。替代品很容易找到,但您的情况可能会有所不同:大型 GB 文本编辑器

就我个人而言,我让“tail -f”在我的 Mongo 日志文件上运行,并且它始终在我可以参考的窗口中运行。