错误:EMFILE:打开的文件太多,请注意,除非我使用 sudo

2024-04-19

描述

最近我遇到了一个问题。我无法奔跑yarn start in element-web目录,我得到这些errors https://pastebin.ubuntu.com/p/93v6Yx58DT/。原本我以为这与element-web本身所以我创建了一个issue https://github.com/vector-im/element-web/issues/15750。一段时间后我尝试跑步wintersmith preview in bibviz https://github.com/danielgtaylor/bibviz目录并得到相同的错误。这很奇怪,所以我尝试创建一个 Angular 项目并运行ng serve并再次出现错误。我前往该问题以将其关闭,因为它不是element-web问题。我发现还有一个issue https://github.com/vector-im/element-web/issues/15774创建时遇到同样的问题。它已经被关闭了turt2live https://github.com/turt2live saying it looks like you've run out of memory on your system。基于此,我尝试关闭大多数在后台运行的程序,现在所有命令都有效。

我确定ng serve过去曾经工作过。

我的电脑有 16 GB RAM,当我使用 7/16 GB 时,命令已经失败。运行命令时我看不到任何内存峰值。运行命令sudo也彻底消除了这个问题。这对我来说没有任何意义。

研究引导我ulimits但它们似乎没有效果。我也安装了watchman没有效果。

有人可以告诉我我错过了什么吗?

先感谢您!

Info

我使用的是 Debian 11 Bullseye。这是一些可能有用的命令的输出。

作为普通用户:

> uname -a
Linux Simon-s-PC 5.8.0-3-amd64 #1 SMP Debian 5.8.14-1 (2020-10-10) x86_64 GNU/Linux
> sudo sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 524288
> ulimit -a
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       46482
-n: file descriptors                8192
-l: locked-in-memory size (kbytes)  unlimited
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 63664
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 95
-N 15:                              unlimited
> yarn --version
1.22.5

With sudo su:

> sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 524288
> ulimit -a
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       63664
-n: file descriptors                1024
-l: locked-in-memory size (kbytes)  2043392
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 63664
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited

我想我已经找到了解决方案:

  • 设定限制于/etc/sysctl.conf通过增加:
fs.inotify.max_user_watches=524288
fs.inotify.max_user_instances=512
  • 打开新终端或重新加载sysctl.conf变量与

    sudo sysctl --system
    
  • Run yarn start

希望现在一切都应该正常。如果不起作用,请尝试将限制设置得更高。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:EMFILE:打开的文件太多,请注意,除非我使用 sudo 的相关文章

  • 带层的 NodeJS Lambda - 如何防止打字稿在构建中包含层

    我正在用打字稿编写一个 NodeJs lambda 函数 它依赖于 Lambda 层才能工作 我在项目文件夹中创建了一个包含示例层的目录 然后使用 tsconfig 文件中的路径选项以便在本地测试它 然而 这工作得很好 当我构建代码来编译
  • Node.js 无限循环功能,在某些用户输入时退出

    我不太明白节点在异步和循环方面到底是如何工作的 我想在这里实现的是让控制台打印出来 Command 并等待用户的输入 但在等待时我希望它运行 一些随机函数 无休止地直到用户在终端上输入 exit 感谢所有的帮助 以及可能的解释 以便我能理解
  • 致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足错误

    我运行时收到此错误ng 构建 prod 92 块资产优化 4136 0155D210 443646 ms 标记 扫描 703 5 770 3 gt 703 6 759 8 MB 2162 2 0 0 ms 自标记开始以来 0 0 ms 0
  • CIFIlter 是否有替代方案可以在 watch os 6 中生成二维码

    我正在开发一个独立于手表的应用程序 我想在 watchkit 上生成二维码 但是由于 coreImage 不能与 watchkit 一起使用 我们还有其他方法可以做到这一点吗 Thanks 我使用支持 watchos 的库 例如EFQRCo
  • Azure Pipelines 中的 NG 构建失败,出现 NPM 错误 134

    大约 50 的托管构建失败 并出现 npm 错误 134 我正在使用托管 vs2017 构建具有相同构建定义的相同提交 我正在使用 Angular CLI 构建 Angular 应用程序 npm 任务调用 run build 它在我的 pa
  • AngularJS:清除 $watch

    我的 AngularJS 应用程序中有一个监视功能 scope watch quartzCrystal function 但是 在某些条件之后 在我的示例中 更改我的页面 单页应用程序 https en wikipedia org wiki
  • 在 GCP PubSub 中收到任何响应之前重试总超时时间已超过

    我正在尝试使用 Node js 推送到 PubSub 主题 google cloud pubsub模块 这是 JavaScript 代码 const pubsub require google cloud pubsub class MyPu
  • 为什么我的异步函数返回得太快? [复制]

    这个问题在这里已经有答案了 我正在尝试使用异步函数来调用另一个函数内的函数 它看起来像这样 const getConnectionsWithEmailsHash async gt const connectionsWithEmails aw
  • 如何在Keystone.js List Map中指定多个字段?

    想知道如何在 Keystone js List Map 中指定多个字段 例如 基于 Keystone 数据模型文档 http keystonejs com docs database http keystonejs com docs dat
  • 使用PM2时如何配置master进程

    我在 NodeJS 中遇到 PM2 问题 如果没有 PM2 我们总是有如下几行代码来配置主进程 if cluster isMaster master process configuration else worker process con
  • NodeJS:MySQL 有时会引发 ETIMEDOUT 错误

    我目前正在使用 NodeJS 开发一个应用程序 然而 经常服务器抛出这个错误 我无法与mysql交互 Error read ETIMEDOUT code ETIMEDOUT errno ETIMEDOUT syscall read fata
  • 推荐的增长缓冲区的方法?

    假设我正在 Node js 中构造一个可变长度的字符串或一系列字节 buf write 的文档说 https nodejs org api buffer html buffer buf write string offset length
  • Mongoose Date.now 时间不准确

    在过去的两个小时里 我一直在抓狂 起初我以为 Moment js 是没有返回正确时间的罪魁祸首 但其实是 mongoose Date now 做了一些邪恶的事情 这是代码 const moment require moment const
  • 定期递归调用函数

    所以我想知道定期递归调用函数的更好方法 就堆栈增长和性能而言 是什么 例如 假设我想每 200 毫秒读取一次文件内容 我有以下两种方法 想知道它们是否有什么不同 方法 1 使用普通的 ols setTimeout 而不使用 process
  • 在 npm 脚本中匹配多个文件扩展名

    我有一个 npm 脚本 我想在其中匹配两者ts and tsx文件扩展名 如下所示 test mocha app test spec ts tsx 但是 上面的语法不起作用 执行此操作的正确语法是什么 你的模式是正确的 你的问题是你的 sh
  • 部署在aws上时如何使用环境变量

    我正在构建一个在本地利用环境变量的 Web 应用程序 我想将其投入生产 在线 我正在尝试了解如何在 AWS 上设置环境变量 这是一个 Node js 应用程序 我在 AWS 上使用 Elastic beanstalk 进行部署 我已经看过了
  • 如何将node.js管道传输到redis?

    我有很多数据要插入 SET INCR 到redis DB 所以我正在寻找pipeline http redis io topics pipelining 质量插入 http redis io topics mass insert通过node
  • 在猫鼬的整个应用程序中共享数据库连接

    使用最新的 mongoose 更新 您不能再像我以前那样进行用户建模 我需要在整个应用程序中共享相同的数据库连接 https github com LearnBoost mongoose issues 1249 https github c
  • 查找返回的 mysql 结果中的行数(nodejs)

    当使用 felixge 的 mysql for node js 时 如何向结果对象询问返回的行数 我有一个相当昂贵的查询 所以我不想运行COUNT 首先 只是为了第二次运行查询 如果是选择查询 则只需获取返回数组的长度即可 connecti
  • 类型错误:无法读取未定义的属性“_id”

    我在将文档保存到名为的集合的简单发布请求中收到错误 TypeError 无法读取未定义的属性 id books 我的有效负载如下所示 name practical view author DN location room 50 而我只是在做

随机推荐