gpt4 book ai didi

node.js - 多个 node.js + 始终 = 错误 : watch EMFILE

转载 作者:搜寻专家 更新时间:2023-11-01 00:13:38 27 4
gpt4 key购买 nike

我在一台服务器上运行三个 node.js 应用程序,所有应用程序都使用 Foreman 通过 always.js 启动应用程序。

零负载 下,我的一个应用程序始终抛出错误 Error: watch EMFILE 并重新启动。该应用程序仍然有效,尽管不断抛出该错误...我试图找到有关此错误的更多信息,但那里没有太多信息(“打开的文件太多”或“增加 ulimit".)

我的问题是:为什么这种情况会发生在空闲 网络应用程序上 - 为什么只有三分之一?它没有做任何事情...它是 always.js 的问题吗? (虽然还有另外两个 Node 应用程序始终在这台机器上运行...)只是寻找一些关于导致此错误的原因的信息,如果它很严重,以及如何解决它。

谢谢!

仅供引用,这里是控制台的相关摘录:

01:17:07 web.1     | app listening on http://0.0.0.0:5000
01:17:07 web.1 | NODE_ENV = development
01:17:07 web.1 | opened connection to database!
01:17:07 web.1 | [always] Error: watch EMFILE
01:17:07 web.1 | [always] Error: watch EMFILE
01:17:07 web.1 | at errnoException (fs.js:636:11)
01:17:07 web.1 | at FSWatcher.start (fs.js:663:11)
01:17:07 web.1 | at Object.watch (fs.js:691:11)
01:17:07 web.1 | at Object.oncomplete (/home/jesse/local/nodev0.6.14/lib/node_modules/always/lib/monitor.js:62:36)
01:17:07 web.1 | [always] Restarting app.js with Node

最佳答案

我没有使用 always.js 的经验,但在使用 fs.watch 命令的其他 Node 实用程序中遇到了类似的错误,而 fs.watch 命令又使用了 linux 的 inotify API。

您可能想尝试检查 inotify 的设置:

cat /proc/sys/fs/inotify/max_user_instances

如果文件存在,将其设置为更高的值可能会有所帮助:

echo 8704 > /proc/sys/fs/inotify/max_user_instances

关于node.js - 多个 node.js + 始终 = 错误 : watch EMFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10086336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com