Condividi tramite


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 problemi seguenti:

  • 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 il 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 consultare 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 da Archiviazione BLOB di Azure, che ospita i livelli di immagine del registro di sistema.

Confrontare le dimensioni dell'immagine con le dimensioni massime supportate e la 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 in quali aree geografiche 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 o in aree vicine alla rete per migliorare le prestazioni.

Collegamenti correlati:

Controllare l'hardware del 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 nell'ambito delle operazioni pull o push. Ad esempio, l'estrazione dei livelli su un'unità disco rigido richiederà più tempo rispetto a un disco SSD. Confrontare le operazioni pull con immagini comparabili 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 ricevere informazioni sulla limitazione della rete che può verificarsi con molte operazioni simultanee.

Esaminare la configurazione del daemon Docker per individuare 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 con replica geografica

In caso di push di un'immagine in un registro con replica geografica, un client Docker potrebbe non eseguire il push di tutti i livelli dell'immagine e del relativo manifesto in un'unica area replicata. Questa situazione può verificarsi perché Gestione traffico di Azure indirizza le richieste al registro replicato nella posizione di rete più vicina. 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 il routing di Gestione traffico verso una o più repliche.

Collegamenti correlati:

Configurare il DNS per il registro 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 alla rete del 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 lo consentono, controllare l'integrità dell'ambiente del registro di sistema. Se vengono segnalati errori, esaminare il riferimento all'errore per trovare 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.