错误。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
那么,为什么不增加你的EBS卷的大小呢?
- Marcin 2022-08-16
是的,我们可以,但我想知道是什么原因导致磁盘利用率达到了最高水平 @Marcin
- art 2022-08-16
你能给出
du -sh /var
的结果吗?
- Alaindeseine 2022-08-19
$ sudo du -sh /var 3.1G @Alaindeseine
- art 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的专家,所以没有测试过。
@art 我更新了我的答案
- Alaindeseine 2022-08-19
#2楼
已采纳
得票数 1
你可以使用dh
实用程序
cd /
du -h -d 1
它将显示/中的每个文件夹的磁盘使用情况,然后你可以在最大的文件夹中cd
,并重复同样的操作。
你也可以运行
du | sort -n
你会得到(一段时间后)文件系统中所有文件夹的大小(按大小升序排列)。根据我的经验,我首先会看一下/home、/tmp和/var。
我已经在问题中加入了du -h -d 1的输出,@gengisdave
- art 2022-08-16
看看/var/lib、/snap和/opt;/var/log可以被清理,但你会得到少量的空间(约占磁盘的5/10%)。
- gengisdave 2022-08-16
我可以手动删除它,但我如何才能不让它在未来发生?@gengisdave
- art 2022-08-16
你可以安排日志轮换/清理。除非你发现一些缓存或未使用的软件需要删除,否则我建议像@Marcin说的那样进行磁盘扩展
- gengisdave 2022-08-16