(节点)点击最大文件限制。 增加“ulimit -n”

在Ubuntu 9中,我在我的服务器上收到一条消息:

(node) Hit max file limit. Increase "ulimit -n" 

但是,在terminal中input命令会显示以下内容:

 $ ulimit unlimited $ ulimit -n 65535 

而一个netstat显示我只有〜1000个连接打开。

尽pipenetstat说我有1000个活动连接,但是我怎么可能达到65535的限制呢? 有没有人看到一个服务器configuration问题,我可能忽略或有进一步的debugging技巧?

ulimit -n显示打开的文件描述符的最大数量,而不是networking连接的最大数量。 您可能需要使用lsof -p <PID_OF_node.js>来确定打开了哪些文件。 我的猜测是你的node.js代码有一些逻辑缺陷。

在terminal键入ulimit -n显示当前的限制,对当前会话有效。 如果您在守护进程开始后更改了限制,则该守护进程的限制不受影响。 所以你需要停止/启动守护进程。 但要确保守护进程的初始化脚本中不存在限制。

另外,你可能想添加这样的东西:

 * soft nofile 2048 * hard nofile 2048 

到/etc/security/limits.conf,所以你不必每次都手动ulimit -n