Как отслеживать использование диска в ОС, оптимизированной для работы с контейнерами - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть приложение, работающее на Compute Engine, оптимизированной для контейнеров. Мое приложение запускается каждые 20 минут, выбирает и записывает данные в локальный файл, а затем удаляет файл после некоторой обработки. Обратите внимание, что каждый файл менее 100 КБ. Размер моего загрузочного диска по умолчанию составляет 10 ГБ. Я сталкиваюсь с ошибкой "нет свободного места на устройстве" каждый месяц или около того, пытаясь записать файл локально.

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

Я вручную проверил размер папок, и кажется, что большая часть пространства занята /mnt/stateful_partition/var/lib/docker/overlay2.

my-vm / # sudo du -sh /mnt/stateful_partition/var/lib/docker/*
20K     /mnt/stateful_partition/var/lib/docker/builder
72K     /mnt/stateful_partition/var/lib/docker/buildkit
208K    /mnt/stateful_partition/var/lib/docker/containers
4.4M    /mnt/stateful_partition/var/lib/docker/image
52K     /mnt/stateful_partition/var/lib/docker/network
1.6G    /mnt/stateful_partition/var/lib/docker/overlay2
20K     /mnt/stateful_partition/var/lib/docker/plugins
4.0K    /mnt/stateful_partition/var/lib/docker/runtimes
4.0K    /mnt/stateful_partition/var/lib/docker/swarm
4.0K    /mnt/stateful_partition/var/lib/docker/tmp
4.0K    /mnt/stateful_partition/var/lib/docker/trust
28K     /mnt/stateful_partition/var/lib/docker/volumes

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

TL; DR : Используйте Stackdriver Monitoring и создайте предупреждение для использования DISK.

Поскольку вы используете изображения COS, вы можете включить агент мониторинга Stackdriver, просто добавив метку «google-monitor-enabled», установленную в «true» в метаданных GCE Instance. Для этого выполните команду:

gcloud compute instances add-metadata instance-name --metadata=google-monitoring-enabled=true

Замените instance-name именем вашего экземпляра. Не забудьте перезапустить свой экземпляр, чтобы сделать изменение. Вам не нужно устанавливать агент мониторинга Stackdriver, так как он уже установлен по умолчанию в образах COS.

Затем вы можете использовать метрику использования диска c, чтобы получить использование вашего диск. How to get DISK USAGE in Stackdriver Monitoring

Вы можете создать alert , чтобы получать уведомления каждый раз, когда использование раздела достигает определенного порога.

Поскольку вы находитесь в облаке, всегда лучше всего использовать облачные ресурсы для решения проблем с облаком.

0 голосов
/ 25 февраля 2020

Docker использует / var / lib / docker для хранения ваших изображений, контейнеров и локальных именованных томов. Удаление этого может привести к потере данных и, возможно, остановить работу двигателя. Подкаталог overlay2, в частности, содержит различные слои filesystem для изображений и контейнеров.

Для очистки неиспользуемых контейнеров и изображений с помощью команды: docker системное удаление.

Контролируйте это с помощью команды "смотреть" sudo watch "du - sh / mnt / stateful_partition / var / lib / docker / *"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...