记录服务器内存爆炸
最近在准备全栈项目,本想拿以前的项目练练手,一测试,发现有bug。遂修改代码,推到远程仓库,登录服务器,拉代码时,报错,说error: unable to create temporary file: No space left on device
,意思是说「无法创建临时文件:设备上没有剩余空间」
纳尼~~
我的小服务器上都没挂什么服务啊,为什么会没内存了
不管怎么样,先查一下
有人也遇到这样的问题:解决Linux出现“cannot create temp file for here-document: No space left on device”的问题
解决方案:
1、df -h 查看硬盘空间
2、top 查看cpu及内存
3、du -h –max-depth=1 /var/log/* 查看/var/log路径下文件的大小
4、du -sh /* 查看哪个目录最大
5、cat /dev/null > /var/log/mongodb/mongod.log 清空mongodb日志文件
使用 df -h
查看硬盘的空间,发现全被/dev/vda1
占据了
而后面又有个 overlay,也是 40G,不明白没关系,继续往后步骤找
第二、三步没啥用,主要是第四步。现在根目录下输入du -sh *
,发现 var 目录占了36个G,不得了
进入 var 目录查询du -sh *
,发现 lib
目录占了 35G
继续进入 lib 目录,查询du -sh *
,发现 docker
目录占了 35G。明白了,问题出在 docker 容器上,也许是镜像,也许是容器,所占的内存太大了
那就把没用的镜像和容器删除吧
删到后面发现是启动的 check 酱容器占满了内存,删除了这个容器后,内存就恢复了
check 酱或许是写入了什么错误日志之类的,导致占满了内存。想想,也就不用
为此,也不去纠结,再说了,这个服务个人感觉并不是很好用,老是报错
学到的东西
主要是 linux 的操作
例如:
df -h
:查看硬盘空间du -sh *
: 查看哪个目录最大