Javascript Node.JS请求模块-错误:连接EMFILE

Javascript Node.JS请求模块-错误:连接EMFILE,javascript,linux,node.js,ubuntu,amazon-ec2,Javascript,Linux,Node.js,Ubuntu,Amazon Ec2,在请求模块中执行GET操作并写入MongoHQ存储时,我在Ubuntu机器上遇到了这个错误 我的错误是: {[错误:连接EMFILE] stack:'Error:connect EMFILE\n at exports.\u errnoException util.js:682:11\n at connect net.js:813:19\n at net.js:897:9\n at Object.asyncCallback[as callback]dns.js:78:16\n at Object.

在请求模块中执行GET操作并写入MongoHQ存储时,我在Ubuntu机器上遇到了这个错误

我的错误是:

{[错误:连接EMFILE] stack:'Error:connect EMFILE\n at exports.\u errnoException util.js:682:11\n at connect net.js:813:19\n at net.js:897:9\n at Object.asyncCallback[as callback]dns.js:78:16\n at Object.onlookup[as oncomplete]dns.js:94:10', 代码:“EMFILE”, 错误号:“EMFILE”, 系统调用:“连接”}

我看到了这个解决方案:

我按照规定的解决方案修改ulimit值,使ulimit-a的输出为:

4096

我还从以下链接更改了limits.conf文件:

我添加了以下几行:

软文件4096 硬文件4096 我仍然有同样的问题

然而,我有另一个ubuntu的盒子,它的内存和存储空间都比较少,而且运行在一个AmazonEC2实例上,而这个实例没有这个问题。我没有对此框进行任何更改,唯一的区别是它运行的是Precise 12.04.2 LTS,而我的问题机器运行的是Precise 12.04.3 LTS


任何帮助都将不胜感激。

我相信你是正确的人选之一。我也有一个EMFILE错误,最终修复它的是将这些行添加到我的/etc/security/limits.conf

然后我重新启动,我不再有问题。“*”表示所有非root用户,因此这基本上是一个包罗万象的问题,不管是哪个用户运行这个程序。据我所知,ulimit只有在用户重新登录后才会更改,因此您可能必须终止进程并注销,然后重新登录……这可能是重新启动对我有效的原因

*                soft    nofile          100000
*                hard    nofile          1000000
root             soft    nofile          100000
root             hard    nofile          1000000