Как я могу найти использование дискового пространства?
У меня есть докер 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
Я запустил то же самое на 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 прячется?
Спасибо Ханан
2 ответа
В хосте macchine запустите lsof и просмотрите удаленные файлы.
lsof |grep delete
Может быть, процесс не выпустил удаленный файл
Прежде всего, если это еще не сделано, пожалуйста, настройте мониторы и оповещения об использовании дискового пространства. Nagios/Icinga имеет несколько общих плагинов, которые легко настроить, или даже простой скрипт, который предупреждает вас о заполнении диска.
Затем вы должны проверить, сколько места занимает ваш контейнер с помощью команд докера (смотрите docker ps -s
, docker system df
или же docker inspect
- внимательно прочитайте справочные страницы, прежде чем запускать их). Вам также необходимо учитывать пространство, занимаемое пользователем файлов конфигурации для контейнеров, контрольной точки (если используется) и файлов журнала. В общем ковыряться /var/lib/docker/
чтобы понять, какие файлы находятся в контейнере.