gpt4 book ai didi

node.js - 使用 child_process 打开的文件太多

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:55 25 4
gpt4 key购买 nike

我只在我的 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),还有软限制,可以提高直到硬限制。他们可能已将软限制设置得较低,以尽量减少资源使用,但将硬限制设置得较高。

了解 node 当前使用了多少文件描述符也很有帮助。登录后,检查 /proc/$(pidof node.js)/fd/ 以查看打开的文件数。也许您没有尽快关闭文件、套接字或管道?

关于node.js - 使用 child_process 打开的文件太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228254/

25 4 0
文章推荐: javascript - 奇怪的 node.js 错误 : TypeError: Object # has no method 'on'