Linux

如何查找磁碟空間使用情況?

  • August 23, 2018

我在 Google Cloud 的 CentOS 主機上執行了一個 Ubuntu docker。docker 執行一個 spring-boot 應用程序,用於將圖像上傳到 S3。我不在本地磁碟上保存任何內容。每隔 2 週左右,我就會遇到磁碟空間問題(設備上沒有剩餘空間)。我在主機上執行以下命令:

[james@api /]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       1.0T   58G  967G   6% /
devtmpfs         15G     0   15G   0% /dev
tmpfs            15G     0   15G   0% /dev/shm
tmpfs            15G   26M   15G   1% /run
tmpfs            15G     0   15G   0% /sys/fs/cgroup
tmpfs           3.0G     0  3.0G   0% /run/user/0
tmpfs           3.0G     0  3.0G   0% /run/user/1000

[james@api /]$ sudo du -hs * | sort -rh | head -5
3.3G    var
1.5G    usr
154M    boot
58M     srv
34M     etc

我在 docker 容器上執行了相同的操作:

[root@ea23811c1871 /]# df -h 
Filesystem      Size  Used Avail Use% Mounted on
overlay         1.0T   58G  966G   6% /
tmpfs            64M     0   64M   0% /dev
tmpfs            15G     0   15G   0% /sys/fs/cgroup
/dev/sda1       1.0T   58G  966G   6% /var/log
shm              64M     0   64M   0% /dev/shm
tmpfs            15G     0   15G   0% /proc/acpi
tmpfs            15G     0   15G   0% /proc/scsi
tmpfs            15G     0   15G   0% /sys/firmware

[root@ea23811c1871 /]# du -hs * | sort -rh | head -5
1.2G    usr
139M    var
2.7M    etc
36K     tmp
28K     root

我的問題是,我怎樣才能找到 58G 的藏身之處??

謝謝,哈南

在主機中執行lsof 並查看已刪除的文件

lsof |grep delete

可能程序沒有釋放刪除的文件

首先,如果還沒有這樣做,請設置磁碟空間使用的監視器和警報。Nagios/Icinga 有一些易於設置的通用外掛,甚至是一個在磁碟變滿時提醒您的簡單腳本在這裡會很有幫助。

然後你應該通過 docker 命令檢查你的容器佔用了多少空間(在執行這些命令之前請仔細閱讀手冊頁)docker ps -s。您還需要考慮容器、檢查點(如果使用)和日誌文件的配置文件使用者佔用的空間。通常四處尋找以了解哪些文件駐留在容器中的哪個位置。 docker system df``docker inspect``/var/lib/docker/

引用自:https://serverfault.com/questions/926793