Назад | Перейти на главную страницу

Как я могу узнать использование дискового пространства?

У меня есть докер Ubuntu, запущенный на хосте CentOS в Google Cloud. Докер запускает приложение с весенней загрузкой, используемое для загрузки изображений в 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

Я запустил то же самое в контейнере докеров:

[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 ??

Спасибо, Ханан

Прежде всего, если это еще не сделано, настройте мониторы и оповещения об использовании дискового пространства. У Nagios / Icinga есть несколько общих плагинов, которые легко настроить, или даже простой скрипт, который предупреждает вас, когда диск заполняется, здесь может быть полезен.

Затем вы должны проверить, сколько места занимает ваш контейнер, с помощью команд докера (посмотрите docker ps -s , docker system df или docker inspect - внимательно прочтите справочные страницы перед их запуском). Также необходимо учитывать пространства, занимаемые пользователем файлов конфигурации для контейнеров, контрольной точки (если используется) и файлов журнала. В общем ковыряться /var/lib/docker/ чтобы получить представление о том, какие файлы находятся в контейнере.

В хосте Macchine запустить lsof и просматривать удаленные файлы

lsof |grep delete

Возможно процесс не освободил удаленный файл