错误。ENOSPC:设备上没有剩余空间,写入pm2服务器

回答 2 浏览 1452 2022-08-16

我无法确定是什么原因导致我的ec2磁盘空间达到100%的容量。 我有一个脚本,可以删除tmp文件夹中的文件,但仍然随机地有时我的磁盘容量达到100%。 我附上df -i的日志,显示磁盘的利用率。

错误

PM2        | Error: ENOSPC: no space left on device, write
PM2        |     at Object.writeSync (fs.js:679:3)
PM2        |     at Object.writeFileSync (fs.js:1393:26)
PM2        |     at ProcessContainer (/usr/lib/node_modules/pm2/lib/ProcessContainer.js:70:10)
PM2        |     at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainer.js:103:3)
PM2        |     at Module._compile (internal/modules/cjs/loader.js:999:30)

我使用命令df -i来查找

du -h -d 1

art 提问于2022-08-16
那么,为什么不增加你的EBS卷的大小呢?Marcin 2022-08-16
是的,我们可以,但我想知道是什么原因导致磁盘利用率达到了最高水平 @Marcinart 2022-08-16
你能给出du -sh /var的结果吗?Alaindeseine 2022-08-19
$ sudo du -sh /var 3.1G @Alaindeseineart 2022-08-19
@art 好的,但我想看的是字节的位置,你能提供一个这个命令的截图吗?Alaindeseine 2022-08-19
2 个回答
#1楼
得票数 2

检查用户.pm2/logs目录,如果你的节点应用程序作为错误或许多常规的日志,这可能会增加磁盘空间的使用。

我认为,8g太小了。我认为你应该升级你的服务器,分配更多的空间。这将解决你的问题。

如果你不能或者你不想增加磁盘空间,你可以看一下/var/log目录,删除一些额外的日志。从长远来看,你可以使用logrotate来压缩日志文件,并将压缩后的文件上传到另一个地方,以保持/var/log尽可能的小。

最新情况

另外,我不是ubuntu和snap的专家,但你的/snap目录有2,1G大小。你可以检查一下,看看snap是否保留了旧版本的snap包,或者是否有一些可以清除的缓存。

这里有一个bash脚本,可以删除旧的snaps版本,我在这里找到。https://www.debugpoint.com/clean-up-snap/

#!/bin/bash
 #Removes old revisions of snaps
 #CLOSE ALL SNAPS BEFORE RUNNING THIS
 set -eu
 LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
     while read snapname revision; do
         snap remove "$snapname" --revision="$revision"
     done

你也可以删除/var/lib/snapd/cache中的文件,它是一个可以被清除的快照缓存。

但正如我所说,我不是Ubuntu的专家,所以没有测试过。

Alaindeseine 提问于2022-08-16
Alaindeseine 修改于2022-08-19
@art 我更新了我的答案Alaindeseine 2022-08-19
#2楼 已采纳
得票数 1

你可以使用dh实用程序

cd /
du -h -d 1

它将显示/中的每个文件夹的磁盘使用情况,然后你可以在最大的文件夹中cd,并重复同样的操作。

你也可以运行

du | sort -n

你会得到(一段时间后)文件系统中所有文件夹的大小(按大小升序排列)。根据我的经验,我首先会看一下/home、/tmp和/var。

gengisdave 提问于2022-08-16
我已经在问题中加入了du -h -d 1的输出,@gengisdaveart 2022-08-16
看看/var/lib、/snap和/opt;/var/log可以被清理,但你会得到少量的空间(约占磁盘的5/10%)。gengisdave 2022-08-16
我可以手动删除它,但我如何才能不让它在未来发生?@gengisdaveart 2022-08-16
你可以安排日志轮换/清理。除非你发现一些缓存或未使用的软件需要删除,否则我建议像@Marcin说的那样进行磁盘扩展gengisdave 2022-08-16