1

我只是在恢复一个数据库,我将它转储了几分钟以进行一些更改。Mongorestore 占用了大约 100% 的 CPU 并且比预期的时间长得多。我想,这可能是由于我创建的索引,但是,即使恢复单个集合,问题也是一样的。一个集合大小约为 314MB,包含大约 185000 个文档。通常,这件事不会发生。这可能是由于我系统上的磁盘空间较少,但这也是 11GB。谁能帮帮我,这可能是什么问题?

注意:我从 mongo 客户端做事。不包括驱动程序。

4

1 回答 1

0

正如您在评论中指出的那样,这与日志记录有关,那么我建议采取几个步骤:

首先,使用日志轮换。这可以通过对数据库的命令或通过向进程发送 SIGUSR1 信号来完成,因此很容易编写脚本或定期将其作为 cron 作业启用。更多信息在这里:

http://www.mongodb.org/display/DOCS/Logging#Logging-Rotatingthelogfiles

其次,验证您的日志记录级别。从 -v = 日志级别 1 开始;-vv = log 2 等。您可以在启动时和运行时调整它。对于运行时调整,您使用setParameter 命令

// connect to the database or mongos
use admin;
// check the log level
db.runCommand({getParameter : 1, logLevel: 1})
{ "logLevel" : 0, "ok" : 1 }
// set it higher
db.runCommand({setParameter : 1, logLevel: 1})
// back to default levels
{ "was" : 0, "ok" : 1 }
db.runCommand({setParameter : 1, logLevel: 0})
{ "was" : 1, "ok" : 1 }

最后,您还可以运行 --quiet 以减少一些消息传递。

于 2012-08-30T11:05:28.630 回答