Node.js 获取打开文件描述符计数(开发)

标签 node.js

我正在使用 chokidar 来查看文件,我收到 EMFILE 错误,我知道这是因为我当前打开的文件描述符太多。

我正在使用套接字,因此 graceful-fs 无法解决问题。另外,暂时设置我的 ulimit 是暂时的。

有没有办法获取当前在代码中打开的文件描述符的数量?我想检查数量是否即将超过限制,并让进程在继续监视文件/目录之前等待。

最佳答案

获取当前打开的 fd 计数的一个简单方法(假设您有一个 /proc fs)是检查 /proc/self/fd 中的条目数:

var readdir = require('fs').readdir;

readdir('/proc/self/fd', function(err, list) {
  if (err) throw err;
  console.log(list.length);
});

请记住,打开目录进行读取会导致另一个打开的 fd。

如果你想检查来自外部进程的打开文件描述符的数量,只需将 self 替换为你要检查的 pid。

关于Node.js 获取打开文件描述符计数(开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151482/

相关文章:

javascript - 无法在 Windows 10 x64 上安装 hiredis@0.5.0

javascript - Javascript 中具有弱引用的查找表

node.js - 如何从 node.js 中的请求模块获取 cookie?

javascript - 在 javascript 中更新 DynamoDB 中包含连字符或破折号 (-) 的属性

javascript - 遇到 JavaScript Array.indexOf 的奇怪现象(在 Node.js 中)

javascript - 递归函数未按预期返回值

node.js - 对没有关系的关系数据库使用急切加载sequelize

javascript - mongodb 无法在 mac os 上启动

javascript - Sequelize 和 Express 模型和关联设置

javascript - 在 express 中捕获来自 mongoose 查询的错误