“Server x timed out” during MongoDB aggregation

不羁的心 提交于 2019-12-01 15:28:07

问题


I have a script that periodically runs aggregation on a mongodb collection. As the dataset has grown, the amount of time it takes to aggregate has also grown. My aggregation script has recently stopped working consistently, and the error logs show: error: { [MongoError: server <x> timed out] name: 'MongoError', message: 'server <x> timed out' } I've tried debugging this, and the only pattern I can find is that this timeout seems to only occur when the aggregation takes longer than 2 minutes (it times out right around 2m). Does anyone have additional debugging tips for this? The 2-minute thing is giving me the impression that I just need to configure some timeout somewhere but I can't figure out where or if i'm just falling into a red-herring trap.

About the system configuration: This aggregation script is a node.js (v5.9.1) application running in an alpine-based docker (v1.9.1) container. It uses the mongodb node driver (v2.1.19). Single mongodb server (though this is also happening in a separate environment with a replSet) running mongod (v3.2.6)


回答1:


I got the same problem for logs time aggregation. I think I have the solution for you.

I found that the option socketTimeoutMS is responsible for that. Check your mongo_client.js default socketTimeoutMS value. For me it was 2min. Mongodb module version 2.1.18.

So just add this option into your url :

mongodb://localhost:27017/test?maxPoolSize=2&socketTimeoutMS=60000

It will set timeout to 10 mins. That does the trick for me.



来源:https://stackoverflow.com/questions/37899216/server-x-timed-out-during-mongodb-aggregation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!