Сборка реестра Docker с использованием S3 выполняется очень медленно

Сбор мусора в реестре Docker на S3 происходит очень медленно. Сборка реестра размером 500 ГБ заняла более 24 часов. Мой основной реестр докеров более чем в тридцать раз больше.

Я думаю, что GC работает медленно, потому что процедура сборки мусора Docker неэффективно использует вызовы S3 API. Кто-нибудь знает о сборщике мусора реестра Docker, написанном специально для S3, или о каком-то способе ускорить процесс сборки мусора?

Спасибо, Эд


person E. Lee    schedule 21.04.2017    source источник


Ответы (2)


У меня был реестр 5 ТБ (бэкенд s3) для GC, я не мог заставить сборщик мусора работать в разумные сроки (менее 2 дней).

В качестве обходного пути я нашел https://gitlab.com/gitlab-org/docker-distribution-pruner

Работает намного быстрее. Я смог запустить сборку мусора менее чем за 3 часа. Самая длинная часть состояла в том, чтобы удалить все капли.

В Gitlab есть много проблем, связанных со сборкой мусора из реестра Docker. Они даже создали собственный форк. Возможно, мы увидим некоторые улучшения в будущем

person Julien Vey    schedule 04.12.2019

10Tb требуется до 2 недель, чтобы собрать мусор.

Их реализация обрабатывает данные S3 как файлы на локально подключенном диске, и это совсем не оптимизировано.

Кажется возможным создать собственную реализацию сборщика мусора, не требующую перехода в режим только для чтения, но 500Gb дешевле нескольких месяцев работы программиста.

person Alex Jake Green    schedule 18.04.2019