0

我们正在运行一个包含大量数据的 3 节点 replSet,目前有超过 1500 个数据文件。

重新启动 MongoDB 实例时,我们现在遇到以下问题:

Thu May 30 12:11:20.326 [initandlisten] create collection local.startup_log { create: "startup_log", size: 10485760, capped: true }
Thu May 30 12:11:20.326 [initandlisten] command local.$cmd command: { create: "startup_log", size: 10485760, capped: true } ntoreturn:1 keyUpdates:0  reslen:75 543ms
Thu May 30 12:11:20.326 [initandlisten] info PageFaultRetryableSection will not yield, already locked upon reaching
Thu May 30 12:11:20.326 [initandlisten] insert local.startup_log ninserted:1 keyUpdates:0  0ms
Thu May 30 12:11:20.326 [initandlisten] fd limit hard:550000 soft:550000 max conn: 440000
Thu May 30 12:11:20.326 [initandlisten] ERROR: socket 1203 is higher than 1023; not supported
Thu May 30 12:11:20.326 [initandlisten] now exiting
Thu May 30 12:11:20.326 dbexit:

经过大量的谷歌搜索,看起来它与 FD_SETSIZE 限制为 1024 有关。但是 ulimit -n 设置为 550000,如您在日志中所见。

我无法再次启动实例...有人可能对我有提示吗?

谢谢,奥利弗

4

2 回答 2

0

此错误消息的源代码在这里:

https://github.com/mongodb/mongo/blob/v2.4.1/src/mongo/util/net/listen.cpp#L205

此处将文件描述符与 FD_SETSIZE 进行比较,后者在头文件中定义为 1024。我看不到如何通过配置任何内容(操作系统、ulimits ...)来更改此值的简单方法。

您使用的是最新的 MongoDB 版本吗?查看 MongoDB 问题,通过在启动时不打开所有文件来减少使用的文件描述符的数量进行了一些更改 - 请参阅 Joachim Isaksson 评论中的链接。

于 2013-05-30T11:20:04.703 回答
0

我们在这里调试这个:https ://jira.mongodb.org/browse/SERVER-9818并计划在下一个版本中尽快修复。

于 2013-06-03T17:35:50.673 回答