一次磁盘占满-处理

原创
2020/07/15 19:06
阅读数 2.7K

原因

测试系统报磁盘占用100%。查出原因是docker的日志和docker的/var/lib/docker/overlay2文件太大。
可以使用下面的命令查看大于100M的文件:

find . -type f -size +100M  -print0 | xargs -0 du -h

其他查找方式。

# 查找哪些文件占用磁盘太大
sudo df -h | sort -h
# 在当前目录的文件占用。追踪大文件,最后一直跟踪到/var/lib/docker/。
sudo du -sh * | sort -h
# 查看docker的容器
sudo docker ps -a
# 查看docker的镜像
sudo docker images
# 删除不用的镜像
sudo docker rmi 镜像名

最后看到日志文件太大,清除docker日志。

# 查看containers日志大小
sudo du -d1 -h /var/lib/docker/containers | sort -h
# 权限提升,以root账号操作。
sudo -i
# 切换到大文件目录
cd 大文件目录
# 清除日志文件内容。
cat /dev/null > <container id>-json.log 

查看已删除空间却没有释放的进程

使用rm删除文件的时候,虽然文件已经被删除,但是由于文件被其他进程占用,空间却没有释放。
使用下面的命令查看进程。(文件已经删除,但是进程没有释放的进程):

sudo lsof -n |grep deleted

查看完成后,如果觉得进程没有用,就kill 掉进程(要非常小心,确认好没用再kill)。如果是docker的容器重启容器就行了。

-- 查看磁盘空间使用情况  
df -h |sort -h
-- 重启容器  
sudo docker restart c8afb2b5065c
-- 重新查看磁盘空间,发现确实释放了很多空间。  
df -h |sort -h

在启动docker的时候,设置日志文件大小。

为了避免日志文件过大的情况,可以在启动docker的时候,设置日志文件大小。

docker run ...... --log-opt max-size=10m --log-opt max-file=1

mysql数据文件太大,移动方式:

参考文档: https://my.oschina.net/kunBlog/blog/4436670

清理磁盘的参考文档。

https://www.cnblogs.com/gcdd/p/12292422.html

docker清理的参考文档:

https://success.docker.com/article/no-space-left-on-device-error
https://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2
https://blog.csdn.net/weixin_41945228/article/details/104331479

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部