我收到此错误。当一个人登录到应用程序时,使用utilityWrapper将日志输入到文件中。当应用程序中发生某些活动时,将读取/写入此文件。然后突然过了一段时间
'throw errnoException(process._errno, 'spawn');
Error: spawn EMFILE
at errnoException (child_process.js:988:11)
at ChildProcess.spawn (child_process.js:935:11)
at Object.exports.spawn (child_process.js:723:9)
at Object.Logger (/web/utilityWrapper.js:21:17)
at process.env.NODE_TLS_REJECT_UNAUTHORIZED (/web/server.js:141:17)
at process.EventEmitter.emit (events.js:95:17)
at process._fatalException (node.js:272:26)
出现此错误。 请帮助我。
答案 0 :(得分:1)
这是因各种原因而发生的。代码有许多console.logs,它在运行服务器的命令提示符上打印了很多东西。在写入文件时,它使用的是文件描述符(fd
)。文件描述符的ulimit
是1024。
使用命令
lsof - -i -n -P | grep nodejs
我能够捕获有关每个fd
的信息。
当用户进入应用程序时,Fd
计数用于增加.ldap套接字和mysql数据库连接也消耗了大量的fd
。
所以当你遇到这种错误时,请记住这些要点。