当前位置: 代码网 > 服务器>服务器>云虚拟主机 > liunx内存满了,docker中overlay2爆表解决方案

liunx内存满了,docker中overlay2爆表解决方案

2024年09月07日 云虚拟主机 我要评论
liunx内存满了,docker中overlay2爆表最近做项目发现了一个问题,我在liunx运行了nacos服务,但是在上传的时候发现了这个问题org.springframework.web.mul

liunx内存满了,docker中overlay2爆表

最近做项目发现了一个问题,我在liunx运行了nacos服务,但是在上传的时候发现了这个问题

org.springframework.web.multipart.multipartexception: failed to parse multipart servlet request; nested exception is java.io.ioexception: org.apache.tomcat.util.http.fileupload.fileuploadbase$iofileuploadexception: processing of multipart/form-data request failed. /home/nacos/work/tomcat/localhost/nacos/upload_6409cdc9_9dcc_4f8c_9029_a1672a38bf20_00000002.tmp (no space left on device)

说明了一个问题

liunx内存中不够内存再分配了。

于是赶紧到liunx中查看

执行以下命令:

df -h

看到root爆炸100%,以及overlay也是爆满了

网上找了很多操作,甚至启用了docker system pruna(删除长时间未使用的容器 未挂在容器 关闭的容器等) 容器的删除,操作,但是这个操作很危险,还是建议不这样做

采取另外一种方案:清理内存:删除log日志,一些不用的数据卷等

因为,如果你的docker长时间运行,它就会产生非常多的log日志,这就需要清理

具体操作如下:

1、清理 /var/lib/docker/containers 目录

先创建清理脚本文件,这里名为 docker_logs_clean.sh ,可以自定义,命令如下:

touch docker_logs_clean.sh
 
# 赋予修改权限
chmod +777 docker_logs_clean.sh
 

加入如下脚本:

echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
        do
                echo "clean containers logs : $log"
                cat /dev/null > $log
        done
echo "======== end clean docker containers logs ========"

执行脚本:

sh docker_logs_clean.sh start

2、清理 /var/lib/docker/volumes 目录

这个操作清理日志

find /var/lib/docker/volumes -name "*.log"

可以看到长时间运行有非常多的日志没有清理

执行以下命令进行清除

find /var/lib/docker/volumes -type f -name "*.log" -delete

通过上述两种清理方式,再查看内存如下:

整体的使用率都降下来了,包括root占用也下降了不少

非常实用!!!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com