使用child_process打开的文件过多

我只在我的Rackspace Ubuntu Maverick实例上收到以下错误...但不在我当地的Ubuntu Lucid VM上:
pipe(): Too many open files
pipe(): Too many open files

child_process.js:223
  var fds = this._internal.spawn(path,
                           ^
Error: Error spawning
    at ChildProcess.spawn (child_process.js:223:28)
    at child_process.js:10:15
    etc..etc..
生成它的代码:
function getHeader(url, callback)
{
  var client = spawn('curl', ['-I', url]);
  client.stdout.on('data', function(data)
  {
    client.kill('SIGTERM');
    callback(data.toString('utf8'));
  });
}
    
已邀请:
了解托管服务提供商设置文件限制的程度有多大将是有帮助的:
ulimit -n
将告诉您每个进程打开文件描述符数量的
setrlimits(2)
限制。典型安装使用
1024
。他们可能将其设置得更低,以限制内核内存的使用。 有一些硬限制,你只能通过礼貌地询问Rackspace(除非你有写入访问权限,例如
/etc/security/limits.conf
)和软限制,这可以提升到硬限制。他们可能已将软限制设置得较低,以尽量减少资源使用,但要保持较高的硬限制。 了解当前正在使用的文件描述符数量也很有帮助。当您登录时,请检查
/proc/$(pidof node.js)/fd/
以查看打开的文件数量。也许你没有关闭文件或套接字或管道的速度?     

要回复问题请先登录注册