Risolvere i problemi relativi alle prestazioni del registro

Questo articolo illustra come risolvere i problemi che possono verificarsi con le prestazioni di un registro Azure Container.

Sintomi

Può includere uno o più dei seguenti elementi:

  • Il pull o il push di immagini con l'interfaccia della riga di comando di Docker richiede più tempo del previsto
  • La distribuzione di immagini in un servizio, ad esempio servizio Azure Kubernetes richiede più tempo del previsto
  • Non è possibile completare un numero elevato di operazioni pull o push simultanee nel tempo previsto
  • Viene visualizzato un errore HTTP 429 simile a Too many requests
  • Le operazioni pull o push in un registro con replica geografica richiedono più tempo del previsto oppure il push ha esito negativo con errore Error writing blob o Error writing manifest

Cause

  • La velocità di connessione di rete può rallentare le operazioni del Registro di sistema - soluzione
  • La compressione o l'estrazione del livello di immagine può essere lenta nel client - soluzione
  • Si sta raggiungendo un limite configurato nel livello di servizio o nell'ambiente del Registro di sistema - soluzione
  • Il registro con replica geografica include repliche nelle aree vicine - soluzione
  • Si esegue il pull da una replica del Registro di sistema geograficamente distante - soluzione

Se il problema non viene risolto qui, vedere Risoluzione dei problemi avanzata e Passaggi successivi per altre opzioni.

Possibili soluzioni

Controllare la velocità di rete prevista

Controllare la velocità di caricamento e download di Internet oppure usare uno strumento come AzureSpeed per testare il caricamento e il download dall'archivio BLOB di Azure, che ospita i livelli di immagine del Registro di sistema.

Controllare le dimensioni dell'immagine rispetto alle dimensioni massime supportate e alla larghezza di banda di download o caricamento supportata per il livello di servizio del Registro di sistema. Se il Registro di sistema è nel livello Basic o Standard, prendere in considerazione l'aggiornamento per migliorare le prestazioni.

Per la distribuzione di immagini in altri servizi, controllare le aree in cui si trovano il Registro di sistema e la destinazione. Valutare la possibilità di individuare il Registro di sistema e la destinazione di distribuzione nelle stesse aree vicine alla rete o per migliorare le prestazioni.

Collegamenti correlati:

Controllare l'hardware client

Il tipo di disco e la CPU nel client Docker possono influire sulla velocità di estrazione o compressione dei livelli di immagine sul client come parte delle operazioni pull o push. Ad esempio, l'estrazione dei livelli su un'unità disco rigido richiederà più tempo rispetto a un disco a stato solido. Confrontare le operazioni pull per immagini confrontabili dal Registro Azure Container e da un registro pubblico, ad esempio Docker Hub.

Esaminare i limiti configurati

Se si esegue il push o il pull simultaneo di più immagini multilivello nel Registro di sistema, esaminare i limiti ReadOps e WriteOps supportati per il livello di servizio del Registro di sistema. Se il Registro di sistema è nel livello Basic o Standard, prendere in considerazione l'aggiornamento per aumentare i limiti. Rivolgersi anche al provider di rete per informazioni sulla limitazione della rete che può verificarsi con molte operazioni simultanee.

Esaminare la configurazione del daemon Docker per il numero massimo di caricamenti o download simultanei per ogni operazione push o pull nel client. Configurare limiti più elevati, se necessario.

Poiché ogni livello immagine richiede un'operazione separata di lettura o scrittura del Registro di sistema, controllare il numero di livelli nelle immagini. Prendere in considerazione le strategie per ridurre il numero di livelli di immagine.

Collegamenti correlati:

Configurare il Registro di sistema con replica geografica

Un client Docker che esegue il push di un'immagine in un registro con replica geografica potrebbe non eseguire il push di tutti i livelli di immagine e del relativo manifesto in una singola area replicata. Questa situazione può verificarsi perché Gestione traffico di Azure instrada le richieste del Registro di sistema al registro replicato più vicino alla rete. Se il registro ha due aree di replica nelle vicinanze, i livelli dell'immagine e il manifesto potrebbero essere distribuiti nei due siti e l'operazione push avrà esito negativo quando viene convalidato il manifesto.

Per ottimizzare la risoluzione DNS nella replica più vicina quando si esegue il push di immagini, configurare un registro con replica geografica nelle stesse aree di Azure dell'origine delle operazioni push oppure nell'area più vicina se si lavora all'esterno di Azure.

Per risolvere i problemi relativi alle operazioni con un registro con replica geografica, è anche possibile disabilitare temporaneamente Gestione traffico routing a una o più repliche.

Collegamenti correlati:

Configurare IL DNS per il Registro di sistema con replica geografica

Se le operazioni pull da un registro con replica geografica appaiono lente, la configurazione DNS nel client potrebbe risolversi in un server DNS geograficamente distante. In questo caso, Gestione traffico potrebbe instradare le richieste a una replica vicina al server DNS, ma distante dal client. Eseguire uno strumento come nslookup o dig (in Linux) per determinare la replica a cui Gestione traffico instrada le richieste del Registro di sistema. Ad esempio:

nslookup myregistry.azurecr.io

Una possibile soluzione consiste nel configurare un server DNS più vicino.

Collegamenti correlati:

Risoluzione avanzata dei problemi

Se le autorizzazioni per le risorse del Registro di sistema sono consentite, controllare l'integrità dell'ambiente del Registro di sistema. Se vengono segnalati errori, esaminare il riferimento all'errore per le potenziali soluzioni.

Se la raccolta di log delle risorse è abilitata nel Registro di sistema, esaminare il log ContainterRegistryRepositoryEvents. Questo log archivia le informazioni per operazioni quali eventi push o pull. Eseguire una query sul log per individuare gli errori delle operazioni a livello di repository.

Collegamenti correlati:

Passaggi successivi

Se il problema non viene risolto qui, vedere le opzioni seguenti.