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

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

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

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

但是,在终端中输入命令会显示以下内容:

$ ulimit       
unlimited
$ ulimit -n      
65535

显示netstat我只打开了~1000 个连接。

尽管我显示有 1000 个活动连接,但为什么我还是达到了 65535 的限制netstat?有人看到我可能忽略的服务器配置问题或有进一步调试的提示吗?

答案1

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

答案2

在终端中输入ulimit -n显示当前限制,这对您的当前会话有效。如果您在伴随守护进程启动后更改了限制,则该守护进程的限制不会受到影响。因此您需要停止/启动守护进程。但请确保守护进程的初始化脚本中的限制没有改变。

此外,您可能还想添加如下内容:

*               soft    nofile          2048
*               hard    nofile          2048

到 /etc/security/limits.conf,这样您就不必ulimit -n每次都手动操作。

相关内容