今天收到一个磁盘告警,告警的原因是一台 Jenkins 机器上某个磁盘空间满了。
马上使用 df -h 命令看下使用情况
上图是我优化后的截图,告警的时候磁盘使用量已经接近 100%。
上图中看到的 overlay 分区是 Docker 的虚拟文件系统,其真实的文件系统是 /dev/vda1。所以我们要找到是什么原因大量占据了 /dev/vda1。
一般有两种情况。
无用的镜像和容器太多
我们可以使用以下命令大致看下情况
docker system df -v
# 用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及无tag的镜像。
docker system prune
# 可以将没有容器使用 Docker 镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了
docker system prune -a
日志、大文件占用了 /dev/vda1 分区
还有一种情况就是 一些日志文件,大文件占用了 /dev/vda1 分区。这个分区一般是挂载在 “/” 下面。
所以我们可以重点关注下面几个目录:
- /var/tmp
- /var/log
- /root