Устранение неполадок с производительностью реестра

В этой статье показано, как устранить неполадки, которые могут возникнуть с производительностью реестра контейнеров Azure.

Symptoms

Может содержать один или несколько из следующих элементов.

  • Извлечение или отправка изображений с помощью Интерфейса командной строки Docker занимает больше времени, чем ожидалось
  • Развертывание образов в службе, такой как служба Azure Kubernetes, занимает больше времени, чем ожидалось
  • Вы не сможете завершить множество одновременных операций получения или отправки за ожидаемое время.
  • Отображается ошибка HTTP 429, аналогичная Too many requests
  • Операции извлечения или отправки в геореплицированном реестре занимают больше времени, чем ожидалось, или отправка завершается ошибкой или сбоем Error writing blob . Error writing manifest

Причины

  • Скорость сетевого подключения может замедлить операции реестра — решение
  • Сжатие или извлечение слоя изображений могут быть медленными на клиенте — решение
  • Вы достигаете настроенного ограничения в уровне служб реестра или среде — решение
  • Геореплицированный реестр содержит реплики в соседних регионах — решение
  • Вы извлекаете данные из удаленной копии реестра — решение

Если вы не устраните проблему здесь, ознакомьтесь с дополнительными инструкциями по устранению неполадок и дальнейшим действиям .

Потенциальные решения

Проверка ожидаемой скорости сети

Проверьте скорость отправки и скачивания в Интернет или используйте средство, например AzureSpeed, чтобы проверить отправку и скачивание из хранилища BLOB-объектов Azure, на котором размещаются уровни образов реестра.

Проверьте размер образа с максимальным поддерживаемым размером и поддерживаемой пропускной способностью загрузки или отправки для уровня служб реестра. Если реестр находится на уровне "Базовый" или "Стандартный", рассмотрите возможность обновления для повышения производительности.

Чтобы развернуть образ в других службах, проверьте регионы, где находятся реестр и цель. Рекомендуется найти реестр и целевой объект развертывания в одних и том же или близких к сети регионах, чтобы повысить производительность.

Связанные ссылки

Проверка клиентского оборудования

Тип диска и ЦП клиента Docker могут повлиять на скорость извлечения или сжатия слоев изображений на клиенте в рамках операций извлечения или отправки. Например, извлечение слоя на жестком диске займет больше времени, чем на диске с твердым состоянием. Сравните операции извлечения сопоставимых образов из реестра контейнеров Azure и публичного реестра, например Docker Hub.

Проверка настроенных ограничений

Если вы одновременно отправляете или извлекаете несколько многоуровневых образов в реестр, просмотрите поддерживаемые ограничения ReadOps и WriteOps для уровня служб реестра. Если реестр находится на уровне "Базовый" или "Стандартный", рассмотрите возможность обновления, чтобы увеличить ограничения. Уточните также у поставщика услуг сетевого подключения о возможных ограничениях на скорость сети, которые могут возникнуть при многочисленных параллельных операциях.

Просмотрите конфигурацию демона Docker для максимальной одновременной загрузки или выгрузки для каждой операции загрузки или выгрузки с клиента. При необходимости настройте более высокие ограничения.

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

Связанные ссылки

Настройка геореплицированного реестра

Клиент Docker, который отправляет изображение в геореплицированный реестр, может не отправлять все слои изображений и его манифест в один реплицированный регион. Эта ситуация может произойти, так как диспетчер трафика Azure направляет запросы реестра в ближайший к сети реплицированный реестр. Если в реестре есть два близлежащих региона репликации, слои изображений и манифест могут быть распределены между двумя сайтами, а операция push завершается сбоем при проверке манифеста.

Чтобы для разрешения DNS при передаче образов использовалась ближайшая копия, настройте геореплицированный реестр в тех же регионах Azure, где находится источник операций отправки, или в ближайшем регионе при работе за пределами Azure.

Чтобы устранить неполадки с геореплицированным реестром, можно также временно отключить маршрутизацию диспетчера трафика на одну или несколько репликаций.

Связанные ссылки

Настройка DNS для геореплицированного реестра

Если операции извлечения из геореплицированного реестра появляются медленно, конфигурация DNS на клиенте может разрешиться на географически удаленный DNS-сервер. В этом случае диспетчер трафика может направлять запросы к реплике, близкой к DNS-серверу, но далеко от клиента. Запустите средство, например nslookup или dig (в Linux), чтобы определить реплику, в которую диспетчер трафика направляет запросы реестра. Рассмотрим пример.

nslookup myregistry.azurecr.io

Потенциальное решение заключается в настройке более близкого DNS-сервера.

Связанные ссылки

Продвинутое устранение неполадок

Если разрешения на ресурсы реестра разрешены, проверьте работоспособность среды реестра. Если сообщается об ошибках, просмотрите ссылку на ошибку для потенциальных решений.

Если коллекция журналов ресурсов включена в реестре, просмотрите журнал ContainterRegistryRepositoryEvents. В этом журнале хранятся сведения об операциях, таких как события отправки или извлечения. Запросите журнал на предмет сбоев операций на уровне репозитория.

Связанные ссылки

Дальнейшие шаги

Если проблема не решена, воспользуйтесь следующими вариантами.