Linux
如何查找磁碟空間使用情況?
我在 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/