Solucionar problemas de desempenho de registro

Este artigo ajuda você a solucionar problemas que podem ocorrer com o desempenho de um registro de contêiner do Azure.

Sintomas

Pode inclui um ou mais dos seguintes:

  • As imagens pull ou push com a CLI do Docker demoram mais do que o esperado
  • A implantação de imagens em um serviço como o serviço Kubernetes do Azure leva mais tempo do que o esperado
  • Não é possível concluir muitas operações simultâneas de pull ou push no tempo esperado
  • Aparece um erro HTTP 429 semelhante a Too many requests
  • As operações de pull ou push em um registro replicado geograficamente demoram mais do que o esperado ou o push falha com erro Error writing blob ou Error writing manifest

Causas

  • Sua velocidade de conexão de rede pode retardar as operações de registro – solução
  • A compactação ou a extração da camada de imagem pode estar lenta no cliente – solução
  • Você está atingindo um limite configurado na camada de serviço do registro ou ambiente – solução
  • Seu registro com replicação geográfica tem réplicas em regiões próximas – solução
  • Você está extraindo de uma réplica de registro geograficamente distante – solução

Se você não resolver o problema aqui, confira Solução de problemas avançada e Próximas etapas para outras opções.

Possíveis soluções

Verifique a velocidade de rede esperada

Verifique sua velocidade de carregamento e download da Internet ou use uma ferramenta como AzureSpeed para testar o upload e o download do Armazenamento de Blobs do Azure, que hospeda camadas de imagem do registro.

Verifique o tamanho da imagem em relação ao tamanho máximo com suporte e o download com suporte ou a largura de banda de upload para a camada de serviço do registro. Se o registro estiver na camada básica ou standard, considere atualizar para aprimorar o desempenho.

Para a implantação de imagem em outros serviços, verifique as regiões em que o registro e o destino estão localizados. Considere localizar o registro e o destino de implantação na mesma região ou em regiões perto da rede para aprimorar o desempenho.

Links relacionados:

Verificar hardware do cliente

O tipo de disco e a CPU no cliente do Docker podem afetar a velocidade de extração ou compactação de camadas de imagem no cliente como parte das operações pull ou push. Por exemplo, a extração de camada em uma unidade de disco rígido levará mais tempo do que em um disco de estado sólido. Compare as operações de pull para imagens comparáveis do seu registro de contêiner do Azure e de um registro público, como o Docker Hub.

Examine os limites configurados

Se você estiver simultaneamente enviando ou extraindo várias ou várias imagens de várias camadas para o registro, examine os limites de ReadOps e WriteOps com suporte para a camada de serviço do registro. Se o registro estiver na camada básica ou standard, considere atualizar para aumentar os limites. Verifique também com seu provedor de rede sobre a limitação de rede que pode ocorrer com muitas operações simultâneas.

Examine a configuração do daemon do Docker para obter o máximo de uploads ou downloads simultâneos para cada operação de push ou pull no cliente. Configure limites mais altos se necessário.

Considerando que cada camada de imagem requer uma operação de leitura ou gravação de registro separada, verifique o número de camadas em suas imagens. Considere as estratégias para reduzir o número de camadas de imagem.

Links relacionados:

Configurar registro com replicação geográfica

Um cliente do Docker que efetua push de uma imagem para um registro com replicação geográfica pode não efetuar push de todas as camadas de imagem e seu manifesto para uma só região replicada. Essa situação pode ocorrer porque o Gerenciador de Tráfego do Azure roteia as solicitações de registro para o registro replicado mais próximo da rede. Se o registro tiver duas regiões de replicação próximas, as camadas de imagem e o manifesto poderão ser distribuídos para os dois sites, e a operação de push falhará quando o manifesto for validado.

Para otimizar a resolução DNS para a réplica mais próxima ao efetuar push de imagens, configure um registro com replicação geográfica nas mesmas regiões do Azure da origem das operações de push ou a região mais próxima ao trabalhar fora do Azure.

Para solucionar problemas de operações com um registro replicado geograficamente, você também pode desabilitar temporariamente o roteamento do Gerenciador de Tráfego para uma ou mais replicações.

Links relacionados:

Configurar registro DNS com replicação geográfica

Se as operações de pull de um registro com replicação geográfica parecerem lentas, a configuração de DNS no cliente poderá ser resolvida para um servidor DNS geograficamente distante. Nesse caso, o Gerenciador de Tráfego pode estar roteando solicitações para uma réplica que está perto da rede para o servidor DNS, mas distante do cliente. Execute uma ferramenta como nslookup ou dig (no Linux) para determinar a réplica para a qual o Gerenciador de Tráfego roteia as solicitações de registro. Por exemplo:

nslookup myregistry.azurecr.io

Uma solução potencial é configurar um servidor DNS mais próximo.

Links relacionados:

Solução de problemas avançada

Se as suas permissões para recursos do registro permitirem, verifique a integridade do ambiente do registro. Se forem relatados erros, examine a referência de erro para obter possíveis soluções.

Se a coleção de logs de recursos estiver habilitada no registro, examine o log ContainterRegistryRepositoryEvents. Esse log armazena informações para operações como eventos de push ou pull. Consulte o log para obter falhas de operação em nível de repositório.

Links relacionados:

Próximas etapas

Se você não resolver o problema aqui, confira as opções a seguir.