Resolver problemas de desempenho do registo

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

Sintomas

Pode incluir um ou mais dos seguintes elementos:

  • Extrair ou enviar imagens com a CLI do Docker leva mais tempo 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 um grande número de operações simultâneas de pull ou push no tempo esperado
  • Você vê um erro HTTP 429 semelhante a Too many requests
  • As operações de pull ou push em um registro replicado geograficamente levam mais tempo 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 compressão ou extração da camada de imagem pode ser lenta no cliente - solução
  • Você está atingindo um limite configurado em sua camada de serviço de registro ou ambiente - solução
  • Seu registro replicado geograficamente tem réplicas em regiões próximas - solução
  • Você está puxando de uma réplica de registro geograficamente distante - solução

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

Soluções potenciais

Verifique a velocidade esperada da rede

Verifique a velocidade de carregamento e download da Internet ou use uma ferramenta como AzureSpeed para testar o carregamento 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 suportado e a largura de banda de download ou upload suportada para sua camada de serviço de registro. Se o seu registro estiver na camada Básica ou Padrão, considere atualizar para melhorar o desempenho.

Para implantação de imagem em outros serviços, verifique as regiões onde o registro e o destino estão localizados. Considere localizar o registro e o destino de implantação nas mesmas regiões ou nas regiões próximas da rede para melhorar o desempenho.

Ligações úteis:

Verifique o hardware do cliente

O tipo de disco e a CPU no cliente 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 operações pull para imagens comparáveis do seu registro de contêiner do Azure e um registro público, como o Docker Hub.

Rever os limites configurados

Se você estiver simultaneamente empurrando ou puxando várias ou muitas imagens em várias camadas para o seu registro, revise os limites de ReadOps e WriteOps suportados para a camada de serviço do Registro. Se o seu registro estiver na camada Básico ou Padrão, 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.

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

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

Ligações úteis:

Configurar o registro replicado geograficamente

Um cliente do Docker que envia uma imagem para um registro replicado geograficamente pode não enviar todas as camadas de imagem e seu manifesto para uma única região replicada. Essa situação pode ocorrer porque o Gerenciador de Tráfego do Azure roteia solicitações do 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 de DNS para a réplica mais próxima ao enviar imagens, configure um registo georreplicado nas mesmas regiões do Azure que a origem das operações de envio ou na 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.

Ligações úteis:

Configurar DNS para registro replicado geograficamente

Se as operações de pull de um registro replicado geograficamente 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á próxima da rede ao 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 solicitações do Registro. Por exemplo:

nslookup myregistry.azurecr.io

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

Ligações úteis:

Resolução de problemas avançados

Se suas permissões para recursos do Registro permitirem, verifique a integridade do ambiente do Registro. Se forem reportados erros, reveja 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 push ou pull. Consulte o log para verificar se há falhas de operação no nível do repositório.

Ligações úteis:

Próximos passos

Se não resolver o problema aqui, consulte as seguintes opções.