Cache Miss e Cache Hit: Quando si verificano (e come aumentare il Cache Hit Ratio)
Pubblicato: 2022-05-04Ottimizzare le prestazioni del tuo sito web senza una solida politica di memorizzazione nella cache è come cercare di costruire una casa sulle sabbie mobili.
Puoi usare i migliori materiali e strumenti, ma quando le tue fondamenta non sono solide, ti sentirai sempre come se qualcosa ostacolasse i tuoi progressi.
La tua politica di memorizzazione nella cache è la spina dorsale delle eccezionali prestazioni web del tuo sito web. Se disponi di un sistema di memorizzazione nella cache adeguato, puoi migliorare drasticamente la velocità del tuo sito.
Al contrario, senza una buona configurazione della cache funzionante, le richieste dei tuoi visitatori porteranno a errori nella cache, che a loro volta rallenteranno il tempo di caricamento della pagina.
E la mancanza di cache è solo uno degli argomenti che tratteremo nelle seguenti righe insieme a:
- Una breve introduzione alla memorizzazione nella cache;
- Che cos'è una cache Miss?;
- Che cos'è un cache hit?;
- Cos'è il Cache Hit Ratio e come calcolarlo?;
- Che cos'è un buon rapporto cache hit?;
- Come aumentare il Cache Hit Ratio?;
- NitroPack: il modo più semplice per ottenere un eccellente rapporto cache hit.
Cominciamo!
Una breve introduzione alla memorizzazione nella cache
Prima di addentrarci nel mondo degli hit and miss della cache, è essenziale capire come funziona la memorizzazione nella cache, a quale scopo serve e perché è considerata la migliore strategia di ottimizzazione della velocità.
Per comprendere la memorizzazione nella cache, dobbiamo fare un passo indietro e seguire l'intero processo che interviene dietro le quinte quando un visitatore richiede il tuo sito.
Il tuo sito web è composto da documenti HTML, file JavaScript e CSS, immagini, ecc. Sono tutti memorizzati sul tuo server di origine. Quando qualcuno vuole visitare il tuo sito web, il suo browser invia una richiesta al tuo server di origine, che a sua volta invia una risposta con tutti i file necessari.

Quando hai 10 visitatori che richiedono contemporaneamente i file del tuo sito, non dovrebbero esserci problemi e il tuo server può gestirli abbastanza facilmente.
Tuttavia, questo modello non funziona quando 100.000 visitatori desiderano visitare il tuo sito web.
I server hanno un limite al numero di richieste che possono gestire contemporaneamente e ogni richiesta dopo quel limite va in coda, con conseguenti tempi di caricamento più lunghi per i tuoi visitatori.

È qui che entra in gioco la memorizzazione nella cache.
In poche parole, la memorizzazione nella cache è il processo di salvataggio di una copia dei dati del tuo sito (HTML, CSS, JS, immagini, ecc.) in una posizione diversa chiamata cache web.
La web cache svolge il ruolo di intermediario tra gli utenti e la tua origine. In questo modo, le loro richieste vengono servite dalla cache e non recuperate dal tuo server.

Di conseguenza, le tue pagine si caricano molto più velocemente.
Puoi trovare numerosi tipi di classificazioni di memorizzazione nella cache. Ma ai fini di questo articolo e per capire quando si verificano errori e errori nella cache, daremo un'occhiata ai due tipi più popolari: browser e cache proxy.
Memorizzazione nella cache del browser
Ogni browser ha la propria politica di memorizzazione nella cache e può archiviare i dati localmente sul computer di un utente.
È utile perché rende velocissimo il caricamento di una pagina visitata in precedenza. In effetti, la memorizzazione nella cache del browser è il motivo principale per cui i pulsanti avanti e indietro possono fare la loro magia.

Sfortunatamente, la memorizzazione nella cache del browser è limitata al funzionamento per dispositivo. Ma il suo più grande vantaggio è che può salvare intere richieste di rete, il che lo rende un must.
Memorizzazione nella cache del server proxy
La memorizzazione nella cache del proxy aiuta ad alleviare il carico sul server e a fornire contenuto relativamente più veloce agli utenti finali. Lo scenario migliore è quando la memorizzazione nella cache del proxy funziona di pari passo con la memorizzazione nella cache del browser.
I server proxy sono distribuiti in tutto il mondo. Di solito sono gestiti da fornitori di CDN (Content Delivery Network).
I proxy sono intermediari tra l'utente e il server di origine. Puoi usarli per memorizzare nella cache i contenuti in posizioni diverse e, in questo modo, i tuoi contenuti saranno più vicini agli utenti, riducendo la latenza e il traffico di rete:

A differenza della memorizzazione nella cache del browser, la memorizzazione nella cache del server proxy non è limitata per dispositivo e può servire contemporaneamente contenuto a più utenti.
Questo è il senso della memorizzazione nella cache. È un argomento ricco di sfumature e c'è molto altro da spiegare: vantaggi e svantaggi dei diversi tipi di memorizzazione nella cache, come impostare le regole di memorizzazione nella cache e altro ancora.
Ma non è questo il focus di questo articolo.
Se vuoi approfondire l'argomento, puoi consultare il nostro articolo - Web Caching 101: Guida per principianti alla memorizzazione nella cache HTTP (esempi, suggerimenti e strategie)
Oppure guarda il nostro video su YouTube:
Per ora, è importante ricordare che se i dati richiesti non vengono trovati nella cache web, è allora che iniziano a verificarsi ritardi e problemi. Questo ci porta a una mancanza di cache.
Cos'è una cache Miss?
Una cache miss si verifica quando un sistema, un'applicazione o un browser richiede di recuperare i dati dalla cache, ma non è stato possibile trovare dati specifici nella memoria cache.
Quando si verifica un errore nella cache, la richiesta viene inoltrata al server di origine.
Una volta che i dati sono stati recuperati dall'origine, vengono quindi copiati e archiviati nella memoria cache in previsione di richieste future simili per gli stessi dati.
Esistono diversi motivi per cui si verifica un errore della cache.
Ad esempio, i dati specifici non sono mai stati memorizzati nella cache in primo luogo.
Diciamo che hai un sito eCommerce e hai appena aggiunto una nuova pagina prodotto. Tutte le immagini, i file HTML, CSS e JavaScript non sono mai stati aggiunti alla memoria cache poiché nessuno li ha mai richiesti. Ciò significa che il tuo primo visitatore dovrà inviare una richiesta alla tua origine per caricare la pagina. Dopo la prima richiesta, i dati verranno trasferiti alla cache e serviti da essa.
Un'altra possibilità di perdita della cache è che i dati memorizzati nella cache siano stati rimossi a un certo punto.
Anche in questo caso, ci sono diverse cose che potrebbero aver portato a quello scenario: era necessario più spazio, un'applicazione ha richiesto la rimozione o la politica Time to Live sui dati scaduti.
Toccheremo di più su Time to Live più avanti nell'articolo.
Qualunque sia la ragione, la verità è che ogni mancanza di cache porta a una latenza più lunga, tempi di caricamento lenti, esperienza utente negativa e visitatori insoddisfatti.
Tuttavia, non voglio lasciarti con l'impressione che tu debba raggiungere i risultati della cache il 100% delle volte. Non è realistico.

Inoltre, ci sono alcuni casi in cui sono necessarie mancate cache, poiché potresti dover assicurarti che il contenuto che offri sia sempre aggiornato.
Ad esempio, un sito Web di notizie come bbc.com può modificare il contenuto della sua home page più volte durante il giorno poiché è necessario riportare le ultime notizie. In questo caso, un cache hit significa che i loro lettori non hanno visto l'ultima versione del loro sito Web e, rispettivamente, hanno perso le ultime notizie.
Quindi c'è un vantaggio nel verificarsi di un errore nella cache.
Tuttavia, se non disponi di un sito Web di notizie e non modifichi i tuoi contenuti regolarmente, dovresti mirare a mantenere i mancati nella cache il più basso possibile e i risultati nella cache il più in alto possibile.
Che cos'è un cache hit?
Un hit della cache si verifica quando i dati richiesti vengono serviti correttamente dalla cache.
Ad esempio, se un utente visita una delle pagine dei tuoi prodotti che dovrebbe visualizzare un'immagine del prodotto che vendi, il suo browser invierà una richiesta per questa immagine alla cache (browser o CDN). Se la CDN ha una copia dell'immagine nella sua memoria, la richiesta genera un hit nella cache e l'immagine viene rispedita al browser.
Che cos'è un rapporto cache hit e come calcolarlo?
Il rapporto di successo nella cache misura quante richieste una cache ha consegnato correttamente dal suo spazio di archiviazione, rispetto a quante richieste ha ricevuto in totale.
Un alto tasso di hit della cache significa che la maggior parte delle richieste degli utenti sono state soddisfatte dalla cache, il che a sua volta significa che hanno riscontrato tempi di caricamento più rapidi.
Puoi calcolare il tuo rapporto di hit nella cache usando questa formula:

Tuttavia, ciò potrebbe non essere necessario poiché la maggior parte dei fornitori di CDN lo calcola per te.
La dashboard di NitroPack mostra anche queste informazioni:

Che cos'è un buon rapporto cache hit?
Come regola generale, una percentuale di hit della cache dell'80% e superiore è un buon risultato in quanto significa che la maggior parte delle richieste viene servita dalla cache.
Qualsiasi valore inferiore all'80% sui siti Web statici indica una politica di memorizzazione nella cache inefficiente.
Secondo Cloudflare, uno dei maggiori fornitori di CDN al mondo:
Il Cache Hit Ratio globale per NitroPack è del 90%. E circa il 70% di tutti gli utenti NitroPack sperimenta un Cache Hit Ratio dell'80% o superiore.
Come aumentare il rapporto cache hit?
È possibile eseguire passaggi specifici per ridurre il numero di errori nella cache e quindi aumentare il tasso di riscontro della cache.
1. Imposta le regole di memorizzazione nella cache in base alle esigenze del tuo sito web
L'intestazione di controllo della cache ti consente di impostare una miriade di diverse regole di memorizzazione nella cache per ottimizzare la pubblicazione dei tuoi contenuti.
Alcune delle regole includono:
- no-store dice alle cache web di non memorizzare nessuna versione della risorsa in nessun caso;
- no-cache dice alla cache web che deve convalidare il contenuto memorizzato nella cache con il server di origine prima di servirlo agli utenti;
- max-age imposta la quantità massima di tempo (in secondi) in cui la cache può conservare la risorsa salvata prima di scaricarla nuovamente o riconvalidarla con il server di origine. Successivamente, il contenuto viene contrassegnato come obsoleto;
- s-maxage fa esattamente la stessa cosa di max-age ma solo per le cache proxy;
- private dice alle cache web che solo le cache private possono memorizzare la risposta;
- public contrassegna la risposta come public. Eventuali cache intermedie possono memorizzare le risposte contrassegnate con questa istruzione;

Dovresti impostare un Time to Live (per quanto tempo la cache conserverà i tuoi dati prima che recuperi le informazioni aggiornate dall'origine) che si adatta meglio ai tuoi contenuti.
Ad esempio, se una risorsa cambia all'incirca ogni due mesi, potrebbe essere appropriato un'intestazione di età massima di 50 giorni. Tuttavia, se l'asset viene modificato quotidianamente, potresti voler utilizzare un'intestazione senza cache .
Puoi trovare ulteriori informazioni sulle intestazioni di controllo della cache, sull'aggiornamento della cache e sulla convalida nel nostro video di YouTube:
2. Ignora i parametri UTM
L'esecuzione di più campagne pubblicitarie (ad es. annunci di Facebook, annunci di Google, ecc.) genera URL diversi con parametri UTM specifici.
Di conseguenza, hai una singola pagina con più varianti (diversi parametri UTM) che devono essere ottimizzate.

Questo è un problema poiché ogni variazione dell'URL è considerata un oggetto univoco e ogni richiesta verrà indirizzata al server di origine.
Di conseguenza, ogni richiesta verrà classificata come cache miss, anche se il contenuto richiesto era disponibile nella cache web.
Ciò porta a un rapporto di hit della cache inutilmente inferiore.
NitroPack - Il modo più semplice per ottenere un eccellente rapporto di hit nella cache
Dopo tutto ciò che abbiamo trattato, l'intero processo per ottenere un alto rapporto di hit della cache potrebbe sembrare un po' opprimente.
La buona notizia è che se stai lavorando con un provider CDN, la maggior parte delle cose che ho menzionato, come le intestazioni di controllo della cache, potrebbero essere già state gestite per te.
Per tutto il resto, puoi utilizzare un plug-in di memorizzazione nella cache.
Ad esempio, NitroPack è dotato di funzionalità pronte all'uso che garantiscono un'elevata percentuale di hit della cache dei nostri utenti. Ciò comprende:
- Cache Warmup simulerà le visite organiche al tuo sito web, che porta automaticamente a NitroPack che prepara versioni ottimizzate (cache) del tuo sito web per desktop e dispositivi mobili.
- Cache Invalidation contrassegna il contenuto memorizzato nella cache come "non aggiornato", ma continua a servirlo fino a quando non è disponibile il contenuto appena ottimizzato. Di conseguenza, i tuoi visitatori vedono sempre contenuti ottimizzati, anche se potrebbero essere obsoleti per un breve periodo.
- CDN integrato, che elimina la necessità di sincronizzare la CDN con il plug-in di memorizzazione nella cache preferito. Spesso ciò richiede tempo, è scomodo e può causare problemi imprevisti.
- Un'opzione di parametro ignorato che consente a NitroPack di ignorare per impostazione predefinita alcuni parametri UTM (e altri) comunemente utilizzati in modo da non doversi preoccupare durante l'esecuzione delle campagne di marketing.

Ma non devi credermi sulla parola. Prova NitroPack gratuitamente e scoprine l'impatto.
