今天收到一個磁盤告警,告警的原因是一台 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