[英]“Server x timed out” during MongoDB aggregation
我有一个脚本定期在mongodb集合上运行聚合。 随着数据集的增长,聚合所需的时间也在增长。 我的聚合脚本最近一直停止工作,错误日志显示: error: { [MongoError: server <x> timed out] name: 'MongoError', message: 'server <x> timed out' }
我试过调试这个,我能找到的唯一模式就是这个超时似乎只发生在聚合时间超过2分钟时(超过2米左右)。 有没有人有额外的调试技巧? 2分钟的事情给我的印象是我只需要在某处配置一些超时,但我无法弄清楚我在哪里或者只是陷入了红鲱陷阱。
关于系统配置:此聚合脚本是在基于alpine的docker(v1.9.1)容器中运行的node.js(v5.9.1)应用程序。 它使用mongodb
节点驱动程序(v2.1.19)。 单个mongodb服务器(虽然这也发生在一个带有replSet的独立环境中)运行mongod(v3.2.6)
我在日志时间聚合方面遇到了同样的问题。 我想我有适合你的解决方案。
我发现socketTimeoutMS
选项socketTimeoutMS
负责。 检查mongo_client.js的默认socketTimeoutMS
值。 对我来说是2min
。 Mongodb模块版本2.1.18。
所以只需将此选项添加到您的网址:
mongodb://localhost:27017/test?maxPoolSize=2&socketTimeoutMS=60000
它将timeout
设置为10分钟。 这对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.