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
oError 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:
- Livelli di servizio di Registro Azure Container
- Domande frequenti sul Registro Contenitori
- Obiettivi di prestazioni e scalabilità per Archiviazione BLOB di Azure
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:
- Replica geografica nel servizio Registro Azure Container
- Risolvere i problemi relativi alle operazioni push con registri con replica geografica
- Disabilitare temporaneamente il routing verso la replica
- Domande frequenti su Gestione Traffico
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:
- Log per la valutazione diagnostica e il controllo
- Domande frequenti sul Registro Contenitori
- Procedure consigliate per Registro Azure Container
Passaggi successivi
Se il problema non viene risolto qui, vedere le opzioni seguenti.
- Altri argomenti relativi alla risoluzione dei problemi del Registro di sistema includono:
- Opzioni di supporto della community
- Microsoft Q&A
- Aprire un ticket di supporto