Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Suggerimento
È anche possibile porre domande a Microsoft Copilot in Azure:
- Come funziona una cache locale nel servizio app di Azure?
- Quali sono i vantaggi dell'uso di una cache locale nel servizio app di Azure?
- Quali sono le limitazioni dell'uso di una cache locale nel servizio app di Azure?
Per trovare Copilot in Azure, nella barra degli strumenti del portale di Azure selezionare Copilot.
Il contenuto del servizio app di Azure viene archiviato in Archiviazione di Azure ed è esposto come condivisione di contenuto durevole. Questa progettazione funziona con varie app e presenta gli attributi seguenti:
- Il contenuto viene condiviso tra più istanze di macchina virtuale dell'app.
- Il contenuto è durevole e le app in esecuzione possono modificarlo.
- I file di log e i file di dati di diagnostica sono disponibili nella stessa cartella di contenuto condiviso.
- La pubblicazione di nuovo contenuto aggiorna direttamente la cartella del contenuto. È possibile visualizzare immediatamente lo stesso contenuto tramite il sito Web di Gestione controllo del codice sorgente (SCM, noto anche come Kudu) e l'app in esecuzione. Tuttavia, alcune tecnologie (ad esempio ASP.NET) potrebbero avviare un riavvio dell'app in determinate modifiche ai file per caricare il contenuto più recente.
Anche se molte app usano una o più di queste funzionalità, alcune app necessitano di un archivio di contenuti ad alte prestazioni e di sola lettura da cui possono essere eseguite con disponibilità elevata. Tali app possono trarre vantaggio dall'esecuzione su una cache locale nell'istanza della macchina virtuale.
La funzionalità di cache locale nel Servizio App di Azure offre una visualizzazione del ruolo web del contenuto. Questo contenuto è costituito da una cache di scrittura con rimozione del contenuto di archiviazione creato in modo asincrono all'avvio del sito. Quando la cache è pronta, il sito passa all'esecuzione sul contenuto memorizzato nella cache.
Le app in esecuzione con una cache locale traggono vantaggio in questi modi:
- Sono immuni alle latenze associate all'accesso al contenuto in Archiviazione di Azure.
- I problemi di connessione all'archiviazione non influiscono su di essi, perché la copia di sola lettura viene memorizzata nella cache in locale.
- Si verificano meno riavvii dell'app dalle modifiche apportate alla condivisione di archiviazione.
Annotazioni
La funzionalità cache locale non è supportata nelle app per le funzioni o nelle app del servizio App containerizzate, come nei contenitori Windows o nei contenitori Linux predefiniti o personalizzati. Una versione della funzionalità disponibile per questi tipi di app è Cache app.
La funzionalità cache locale non è supportata anche nei piani tariffari F1 e D1 del servizio app.
Come una cache locale modifica il comportamento del servizio app
La configurazione di una cache locale causa queste modifiche:
D:\home
ora punta alla cache locale, creata nell'istanza della macchina virtuale all'avvio dell'app.D:\local
continua a puntare all'archivio temporaneo specifico della macchina virtuale.La cache locale contiene una copia una tantum delle
/site
cartelle e/siteextensions
dall'archivio contenuto condiviso. Queste cartelle si trovano rispettivamente inD:\home\site
eD:\home\siteextensions
. Questi file vengono copiati nella cache locale all'avvio dell'app.Le dimensioni di queste due cartelle sono limitate a 1 GB per impostazione predefinita, ma è possibile aumentarla a 2 GB. Man mano che le dimensioni della cache aumentano, il caricamento della cache richiede più tempo. Se si aumenta il limite di cache locale a 2 GB e i file copiati superano questa dimensione massima, il servizio app ignora automaticamente la cache locale e le letture dalla condivisione file remota.
Importante
Quando i file copiati superano il limite di dimensioni definito per la cache locale o quando non viene definito alcun limite, le operazioni di distribuzione e scambio potrebbero non riuscire con un errore. Per informazioni dettagliate, vedere le domande frequenti sui limiti di dimensioni più avanti in questo articolo.
La memoria cache locale è di lettura/scrittura. Tuttavia, eventuali modifiche vengono rimosse quando l'app si sposta tra macchine virtuali o riavvii. Non usare la cache locale per l'archiviazione di dati cruciali.
D:\home\LogFiles
eD:\home\Data
contengono file di log e dati dell'app. Queste cartelle vengono archiviate localmente nell'istanza della macchina virtuale e vengono copiate periodicamente nell'archivio contenuto condiviso. Anche se le app possono rendere persistenti i file di log e i dati scrivendo in queste cartelle, il processo di copia è il massimo sforzo. I file di log e i dati potrebbero essere persi se un'istanza di macchina virtuale smette improvvisamente di rispondere.La copia a sforzo massimo influisce sullo streaming dei log. È possibile osservare un ritardo di un minuto nei log trasmessi.
Nell'archivio di contenuti condivisi, la struttura di cartelle per
LogFiles
eData
cambia per le app che usano una cache locale. Sono ora disponibili sottocartelle con nomi costituiti da un identificatore univoco e da un timestamp. Ogni sottocartella corrisponde a un'istanza di macchina virtuale in cui l'app è o è in esecuzione.Le altre cartelle in
D:\home
rimangono nella cache locale e non vengono copiate nell'archivio contenuto condiviso.Le distribuzioni di app tramite qualsiasi metodo supportato vengono pubblicate direttamente nell'archivio di contenuti condivisi durevoli. Per aggiornare le
D:\home\site
cartelle eD:\home\siteextensions
nella cache locale, è necessario riavviare l'app. Per un ciclo di vita facile, vedere la sezione sulle procedure consigliate più avanti in questo articolo.La visualizzazione contenuto predefinita del sito SCM continua a riflettere l'archivio contenuto condiviso.
Annotazioni
Se si utilizza Java (Java SE, Tomcat o JBoss EAP), per impostazione predefinita, i file di artefatti Java (.jar, .war e .ear) vengono copiati localmente sul lavoratore. Se l'applicazione Java dipende dall'accesso in sola lettura a file aggiuntivi, impostare su JAVA_COPY_ALL
true
in modo che vengano copiati anche tali file. Se una cache locale è abilitata, ha la precedenza su questo comportamento specifico di Java.
Metodi per abilitare una cache locale
È possibile configurare una cache locale usando una combinazione di impostazioni dell'app riservate. È possibile impostare queste impostazioni dell'app usando uno dei metodi seguenti.
Configurare una cache locale usando il portale di Azure
Abilitare una cache locale per ogni app Web aggiungendo questa impostazione dell'app: WEBSITE_LOCAL_CACHE_OPTION
= Always
.
Configurare una cache locale usando Azure Resource Manager
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "appsettings",
"dependsOn": [
"[resourceId('Microsoft.Web/sites/', variables('siteName'))]"
],
"properties": {
"WEBSITE_LOCAL_CACHE_OPTION": "Always",
"WEBSITE_LOCAL_CACHE_SIZEINMB": "1000"
}
}
Modifica dell'impostazione delle dimensioni in una cache locale
Per impostazione predefinita, la dimensione della cache locale è 1 GB. Questa dimensione include le cartelle /site
e /siteextensions
copiate dall'archivio contenuti. Include anche eventuali cartelle di dati e log generati localmente.
Per aumentare questo limite, usare l'impostazione WEBSITE_LOCAL_CACHE_SIZEINMB
dell'app . È possibile aumentare le dimensioni fino a 2 GB (2.000 MB) per app. Tenere presente che una dimensione della cache maggiore aumenta il tempo necessario per caricare la cache.
Procedure consigliate per l'uso di una cache locale
È consigliabile usare una cache locale insieme alla funzionalità degli ambienti di gestione temporanea .
Il processo seguente rappresenta le procedure consigliate per l'uso di una cache locale:
Aggiungere l'impostazione sticky dell'app con il valore
WEBSITE_LOCAL_CACHE_OPTION
nello slot diAlways
. Se si usaWEBSITE_LOCAL_CACHE_SIZEINMB
, contrassegnare anche questa impostazione come impostazione permanente per lo slot di produzione.Creare uno slot di staging e pubblicarlo. In genere, non si configura lo slot di staging per l'uso di una cache locale, il che facilita un ciclo continuo di compilazione, distribuzione e test, continuando a offrire i vantaggi della cache locale per lo slot di produzione.
Testare il sito nell'ambiente di staging.
Quando si è pronti, eseguire un'operazione di scambio tra gli slot di staging e di produzione.
Le impostazioni permanenti sono associate allo slot. Di conseguenza, quando lo slot di staging viene scambiato con lo slot di produzione, eredita le impostazioni dell'app della cache locale. Lo slot di produzione appena permutato viene eseguito nella cache locale dopo alcuni minuti e si riscalda durante la fase di avvio dello slot. Al termine dello scambio, lo slot di produzione viene eseguito nella cache locale.
Domande frequenti
Cosa accade se si supera il limite di dimensioni per la cache locale?
Se i file copiati superano il limite di dimensioni per la cache locale, l'app ripristina la lettura dalla condivisione remota. Nella tabella seguente vengono illustrati i dettagli.
Dimensioni della cache locale | File copiati | Risultato |
---|---|---|
≤ 2 GB | ≤ dimensioni della cache locale | Legge dalla cache locale. |
≤ 2 GB | > dimensioni della cache locale | Legge dalla condivisione remota. Le operazioni di distribuzione e scambio potrebbero non riuscire con un errore. |
Come è possibile stabilire se l'app può trarre vantaggio da una cache locale?
Una cache locale è adatta se si applicano tutte queste condizioni:
- L'app richiede un archivio contenuto affidabile e a prestazioni elevate.
- L'app non usa l'archivio contenuto per la scrittura di dati critici in fase di esecuzione.
- La dimensione totale è inferiore a 2 GB.
Per controllare le dimensioni totali delle cartelle /site
e /siteextensions
, è possibile utilizzare l'estensione del sito Azure Web Apps Disk Usage.
Come è possibile stabilire se il sito è passato all'uso di una cache locale?
Quando si usa una cache locale con ambienti di staging, l'operazione di scambio non viene completata fino a quando la cache locale non viene riscaldata. Per verificare se il sito viene eseguito nella cache locale, è possibile controllare la variabile di ambiente del processo di lavoro WEBSITE_LOCALCACHE_READY
. Per esaminare questa variabile in più istanze, vedere le istruzioni Kudu per la variabile di ambiente del processo di lavoro.
Perché l'app non riflette le modifiche appena pubblicate?
Se l'app usa una cache locale, è necessario riavviare il sito per caricare le modifiche più recenti. Se si preferisce non pubblicare le modifiche direttamente nel sito di produzione, è consigliabile usare gli slot di distribuzione come descritto nella sezione precedente sulle procedure consigliate.
Annotazioni
L'opzione di distribuzione esegui dal pacchetto non è compatibile con la funzionalità della cache locale.
Dove si trovano i log?
Quando si usa una cache locale, la struttura delle cartelle di log e dati cambia leggermente. Le sottocartelle sono ora annidate in una cartella denominata con l'identificatore univoco della macchina virtuale e un timestamp. Ognuna di queste cartelle corrisponde all'istanza della macchina virtuale in cui l'app è o è in esecuzione.
Perché l'app viene ancora riavviata con una cache locale abilitata?
Una cache locale aiuta a prevenire i riavvii dell'app legati all'archiviazione. Tuttavia, l'app potrebbe comunque essere riavviata durante gli aggiornamenti pianificati dell'infrastruttura nella macchina virtuale. Nel complesso, è necessario osservare un minor numero di riavvii con una cache locale abilitata.
Una cache locale esclude la copia delle directory nell'unità locale più veloce?
Durante il processo di copia, qualsiasi cartella denominata viene esclusa repository
. Questo comportamento è utile negli scenari in cui il contenuto del sito include un repository di controllo del codice sorgente che non è necessario per le operazioni quotidiane.
Come si scaricano i log della cache locale dopo un'operazione di gestione del sito?
Per cancellare i log della cache locale, arrestare e riavviare l'app. Questa azione cancella la cache precedente.
Perché il servizio app mostra i file distribuiti in precedenza dopo un riavvio quando è abilitata una cache locale?
Se i file distribuiti in precedenza vengono visualizzati nuovamente dopo un riavvio, verificare la presenza dell'impostazione WEBSITE_DISABLE_SCM_SEPARATION=true
dell'app . L'aggiunta di questa impostazione determina la scrittura delle distribuzioni tramite Kudu nella macchina virtuale locale anziché nell'archiviazione permanente. Per evitare questa situazione, seguire le procedure consigliate indicate in precedenza ed eseguire distribuzioni in uno slot di staging che non dispone di una cache locale abilitata.