MongoDB活动诊断日志文件太大
我有一个mongodb副本集。数据文件的大小相当大,因为有很多写操作。一个mongodb节点崩溃,因为一个diaglog文件为38GB,磁盘空间不足MongoDB活动诊断日志文件太大,mongodb,logging,Mongodb,Logging,我有一个mongodb副本集。数据文件的大小相当大,因为有很多写操作。一个mongodb节点崩溃,因为一个diaglog文件为38GB,磁盘空间不足 有没有办法使diaglog文件不那么大,而是创建了多个小文件(2GB或4GB),这样我就可以删除未使用的文件?这些文件应该只出现在有配置服务器的地方,或者在启动mongod时显式设置了命令行选项的地方 --configsvr or --diaglog 由于这是用于诊断特定问题的,您可能不希望一直打开它。在这种情况下,从启动中删除--diaglog
有没有办法使diaglog文件不那么大,而是创建了多个小文件(2GB或4GB),这样我就可以删除未使用的文件?这些文件应该只出现在有配置服务器的地方,或者在启动mongod时显式设置了命令行选项的地方
--configsvr or --diaglog
由于这是用于诊断特定问题的,您可能不希望一直打开它。在这种情况下,从启动中删除--diaglog
选项,除非您特别将其放在那里
关键是,--diaglog
选项的存在是为了非常详细的日志记录,以便您诊断问题。它应该而不是通常用于生产环境
如果您真的需要它,那么您将看到日志轮换和归档方法,这些方法对于这里提出的这类问题来说有点超出范围
请参阅。副本集不需要。它会创建一个非常详细的日志,用于故障排除,默认情况下绝对不应启用
您可以安全地从mongod
配置中删除此参数,还可以删除dbpath
中的diaglog.*文件
我怀疑您将
diaglog
输出与复制混淆了。oplog
存储在名为oplog.rs
的集合中的local
数据库中,并在初始化复制集时预先分配。对于大多数64位操作系统,默认情况下可用磁盘空间的5%;正如MongoDB手册中所述,OS X和32位系统存在一些例外情况。什么是对话框文件?您的意思是像编程语言一样?diaglog.XXX是这样的数据文件旁边的文件(dialog.4d65d6d)。MongoDb服务器会编写操作的诊断日志。写|读+写等等。哦,好吧,你的意思是,不,我认为将日志输出到文件是非常基本的atm,你最好使用服务器密度之类的监控工具。你在找命令吗?我想把它作为一个答案发布,但我在这方面的知识还不够。正如我所知,diaglog=1对于oplog的副本集是必需的。我弄错了吗?我已经为副本集启用了diaglog=1。@Zango这不应该是强制性的,正如您所说的,对于副本集,我为您提供了它存在的条件。按照建议,从启动中删除此选项,除非您需要它进行调试。否则,请继续使用它,并按照建议旋转日志。@Zango重新完整阅读回答,以理解使用此选项的意义option@NeilLunn:diaglog
不特定于配置服务器或副本集。此参数启用写入和/或读取操作的常规诊断转储,您几乎不希望启用此功能。我不相信有任何简单的选项可以旋转diaglog,除非重新启动mongod
;如果在某个非零日志记录级别启用了diaglog
,则会生成一个新的二进制diaglog。文件将在启动时创建。@Stennie不是我说的吗。是否删除--diaglog,因为它不是必需的?我想我已经说过了。注意:diaglog
参数在MongoDB 2.5.5开发版本(参考:)中已被弃用,并将在未来的MongoDB服务器版本中删除。