当前位置:  开发笔记 > 编程语言 > 正文

Node.js:什么是ENOSPC错误以及如何解决?

如何解决《Node.js:什么是ENOSPC错误以及如何解决?》经验,为你挑选了5个好方法。

我有Node.js的问题并将文件上传到服务器.要将文件上传到服务器,请使用此插件.当开始上传到服务器的文件时,Node.js进程崩溃并显示错误:

错误:ENOSPC.

服务器代码不运行.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  4.1G  3.5G  55% /
udev            288M  8.0K  288M   1% /dev
tmpfs           119M  168K  118M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            296M     0  296M   0% /run/shm
/dev/xvdf       9.9G  3.0G  6.5G  32% /vol
overflow        1.0M  1.0M     0 100% /tmp

Murali Krish.. 1194

运行以下命令以避免ENOSPC:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

然后执行:

sysctl --system

这也将在重新启动后持续存在. 技术细节来源



1> Murali Krish..:

运行以下命令以避免ENOSPC:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

对于Arch Linux,将此行添加到/etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288

然后执行:

sysctl --system

这也将在重新启动后持续存在. 技术细节来源


@Spouark就是这样做的:https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
这不是一个随机数。每个使用的inotify监视占用540字节(32位系统)或1 kB(64位上的双精度)。这是从内核内存中抽出的,它是不可交换的。因此,假设您将最大值设置为524288,并且全部使用(不可能),那么您将使用大约。256MB / 512MB的32位/ 64位内核内存。

2> Blu..:

ENOSPC 意味着驱动器上没有空间.

也许/tmp是满的?您可以npm通过设置npm config set tmp /path/to/some/other/dir或删除/tmp文件夹中的所有内容来配置使用其他临时文件夹.

来源:npm 1.1.21无法在github中的npm的repo中编写ENOSPC.

注意我以上面描述的方式解决了我的问题.但是,请参阅下面的Murali Krishna的答案,这是更全面的.


错误,在观看文件时,通常在开发人员工作区中会发生此错误(通过grunt/gulp).这与进程可以监视的文件数量(本机监视)的unix限制有关.另一个答案(echo fs.inotify.max_user_watches = 524288)是这些情况下的解决方案.

3> orbiteleven..:

不能归功于此,但@grenade指出npm dedupe将解决原因(文件太多)而不是症状.

来源:Grunt手表错误 - 等待...致命错误:观看ENOSPC.



4> 小智..:

解决我的问题的一种简单方法是:

npm cache clear

npm或它所控制的进程正在监视太多文件。在构建节点上更新max_user_watches可以永久修复它。对于debian,请在终端上输入以下内容:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

如果您想知道如何增加inotify观察者的数量,只需单击链接。


我对“ forever”有疑问,当我创建文件“ .foreverignore”并将其添加到“ node_modules”文件夹中时,修复了该问题。

5> Bjorn Reppen..:

重新启动机器解决了我的问题.我第一次尝试擦拭/tmp/但节点仍在抱怨.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有