RethinkDb EMFILE错误

时间:2015-06-09 09:23:09

标签: linux node.js sockets rethinkdb

这是我的项目使用Node.js,Socket.io,RethinkDb

https://github.com/plever7/online-visitors-counter

一切都很顺利。但是如果我们在server.js中通过套接字有很多连接,我们就会收到错误。 5,10秒后代码本身再次成功运行。

ReqlDriverError: Failed to connect to localhost:28015
Full error:
{
 "code": "EMFILE",
  "errno": "EMFILE",
  "syscall": "getaddrinfo"
}.
at Socket.<anonymous> (/root/node_modules/rethinkdbdash/lib/connection.js:89:12)
at Socket.g (events.js:180:16)
at Socket.emit (events.js:95:17)
at net.js:834:16
at process._tickCallback (node.js:442:13)

以上EMFILE表示,我达到了操作系统的文件描述符限制,但我认为还有另一个问题。以下是来自OS的信息:

the maximum number file handlers for entire system is:

[root@socketio ~]# cat /proc/sys/fs/file-max
185294


current usage of handles:

[root@socketio ~]# cat /proc/sys/fs/file-nr
4832 0 185294


The lsof output for 3 server.js process:

[root@socketio ~]# lsof -p 4175 | wc -l
464
[root@socketio ~]# lsof -p 30071 | wc -l
1058
[root@socketio ~]# lsof -p 30084 | wc -l
1064


[root@socketio ~]# ulimit -Hn
65535
[root@socketio ~]# ulimit -Sn
65535

0 个答案:

没有答案