В общем, мониторинг доступности должен осуществляться извне, и в большинстве ситуаций вы должны делать это через регулярные промежутки времени, продолжительность которых зависит от ваших потребностей. Вы знаете причину сбоя в работе? Это была перезагрузка сервера или прерывание работы сети? Если у вас происходят неожиданные перезагрузки, вы можете позволить серверу отправлять вам почту с соответствующими данными журнала сразу после перезагрузки.
Версии Amazon Linux используют device mapper в качестве драйвера хранилища Docker. Device mapper использует многоуровневые блочные устройства копирования-записи для контейнеров. Когда данные не записываются, дисковое пространство практически не используется. По мере записи страниц в файловую систему, она будет выделять данные из device mapper и начнет использовать дисковое пространство.
По умолчанию размер диска для device mapper составляет 10 ГБ, поэтому при работе с 6 образами вам может потребоваться 60 ГБ, если все страницы записываются. Маловероятно, что все страницы записываются, но экземпляр EC2 по умолчанию имеет только 8 ГБ, чего недостаточно.
Когда файл записывается, он записывается в несколько блоков. Если блоки еще не были записаны, то они будут выделены из пула устройств. Когда файл удаляется, блок помечается как неиспользуемый в файловой системе, но пул не знает об этом. Только когда выполняется fstrim, файловая система освобождает страницы из диспетчера устройств.
NGINX поддерживает кэш на /tmp/cache, и в него постоянно производится запись. Если файловая система продолжает использовать различные блоки, то она будет продолжать выделять блоки, пока все 10 ГБ не будут отображены в диспетчере устройств. Есть несколько решений этой проблемы:
Вы также можете регулярно запускать fstrim, чтобы убедиться, что освобожденные блоки возвращаются в пул. Это может быть непросто, поскольку во время пиковой нагрузки он может выполняться недостаточно часто, и в пуле может закончиться место на диске.
По умолчанию докер хранит свои данные в папке / var / lib / docker
. Этот путь также находится в корневом разделе?
Кроме того, по умолчанию при создании экземпляра EC2 корневые тома обычно имеют небольшой размер (около 4 ГБ). Весьма вероятно, что ваш корневой раздел также является тем местом, где хранятся ваши образы докеров, а ваш корневой раздел слишком мал.
Так что увеличьте размер корневого раздела. Или подключите новый том EBS, смонтируйте его в удобном месте, например / var / lib / docker
, и скажите докеру использовать этот новый том EBS для хранения образов.
Если вы хотите изменить каталог, в котором docker хранит свои образы, не по умолчанию / var / lib / docker
, тогда используйте параметр -g при запуске демона docker.
См .: Как изменить каталог установки образа докера для получения дополнительных сведений о том, как изменить рабочий путь докера по умолчанию.