Condividi tramite


Riduzione dell'ora di avvio a freddo nelle app Azure Container

Quando l'applicazione container viene ridimensionata a zero durante i periodi di inattività, la richiesta successiva determina un avvio a freddo. Un avvio a freddo è il processo che richiede tempo di scaricamento dell'immagine del contenitore del software, il provisioning delle risorse e l'avvio del codice dell'applicazione.

Questo ritardo influisce sull'esperienza utente, soprattutto per le applicazioni che richiedono tempi di risposta rapidi. Gli avvii a freddo sono spesso più evidenti negli scenari che coinvolgono immagini di contenitori di grandi dimensioni, inizializzazione di applicazioni complesse o carichi di lavoro ml/intelligenza artificiale.

Questa guida consente di ridurre i tempi di avvio a freddo nelle app Azure Container.

Ottimizzare le dimensioni dell'immagine del contenitore

I carichi di lavoro di Machine Learning e di intelligenza artificiale sono spesso associati a immagini di contenitori di grandi dimensioni. Quando possibile, ridurre le dimensioni di queste immagini il più possibile ed eliminare qualsiasi uso di librerie non necessarie.

Spesso le immagini passano dal training alla fase di inferenza con modifiche minime. Assicurarsi di controllare i contenitori per rimuovere gli strumenti di sviluppo e le dipendenze necessari solo per lo sviluppo di modelli durante la preparazione del contenitore per l'uso dell'inferenza.

Evitare registri di immagini remoti

Utilizzare registri di container vicini all'ambiente delle applicazioni container. In genere questo significa che si vuole usare un Registro Azure Container distribuito nella stessa area dell'ambiente o un registro Premium che include la distribuzione globale.

Gestire download di grandi dimensioni

Usare i montaggi di archiviazione per contenere i dati critici vicino all'app contenitore, soprattutto quando le dimensioni dei file sono grandi. Ad esempio, se l'app richiede un modello linguistico di grandi dimensioni, è possibile pre-scaricare il modello nell'account di archiviazione. Leggendo file di grandi dimensioni da un account di archiviazione, si evita la latenza del pull dei file in Internet.

Se si sta creando un montaggio di archiviazione per i carichi di lavoro di intelligenza artificiale, assicurarsi di usare le opzioni di montaggio più appropriate per le proprie esigenze.

Implementare una sonda di integrità personalizzata o iniziare ad ascoltare presto

Azure Container Apps configura automaticamente una sonda di vivacità quando è abilitato l'ingresso. L'avvio lento di immagini e applicazioni dopo il loro lancio può causare problemi con il contenitore. Le app contenitore potrebbero terminare l'applicazione iniziale perché non riesce il controllo di vitalità.

Per evitare che le container app terminino prematuramente un'immagine, implementare una probe di liveness personalizzata per consentire tempi di avvio più lunghi. In alternativa, è possibile monitorare la porta dedicata di destinazione per le connessioni semplici nelle fasi iniziali del ciclo di avvio, al fine di inizializzare l'applicazione dopo che la porta è stata aperta.

Sistemazioni lato client

Gli orari di avvio a freddo variano a seconda dell'applicazione. Per ridurre il più possibile la percezione di questo tempo, preparare i clienti per affrontare il ritardo.

Segnalare agli utenti che una determinata richiesta potrebbe richiedere più tempo e implementare nuovi tentativi è essenziale. È anche possibile rafforzare il codice per evitare timeout imprevisti che superano ciò che l'applicazione può gestire normalmente.

Strumentazione dell'applicazione

Per la risoluzione dei problemi di prestazioni, implementare le metriche delle prestazioni sul lato applicazione e la registrazione per ogni fase del ciclo di vita dell'applicazione.

Attivare in modo proattivo l'app

Se le raccomandazioni precedenti non forniscono le prestazioni desiderate, riattivare l'app prima di qualsiasi utilizzo effettivo. Si consideri, ad esempio, di configurare un lavoro alle 9:00 per riattivare l'applicazione prima che i dipendenti inizino la giornata lavorativa. Questo approccio potrebbe eliminare i lunghi avvii a freddo, consentendo comunque di ridurre i costi a zero ogni volta che l'app non è in uso.