Chi utilizza regolarmente un computer sa bene che la memorizzazione nella cache è uno dei meccanismi fondamentali quando si vuole migliorare la prestazione di un sito internet. Capita che con frequenti errori nella cache si possano poi aumentare i tempi di accesso ai dati. E questo come si traduce? Con un’esperienza scadente per l’utente che sarà orientato ad abbandonare il sito prima del suo caricamento. Ma c’è un altro argomento che vogliamo sviluppare, ed è quello delle cache miss: vedremo di seguito che cosa sono e in che modo possono essere ridotte!
Cache Miss and Hit: cosa sono?
Partiamo dalle basi, spiegando prima di tutto due concetti chiave: la cache miss e hit. La prima si verifica bel momento in cui una cache non ha i dati richiesti nella sua memoria. Significa letteralmente “fallimento della cache” o “perdita” e comporta una latenza molto lunga (più del previsto) per l’accesso alla memoria principale. Di solito, per un sistema di memorizzazione più efficace è importante che la percentuale di successo sia superiore alla percentuale di errori. Ecco allora che è sempre bene evitare o ridurre le perdite di cache.
Dall’altra parte abbiamo le cache hit che si presenta nel momento in cui un software o un’app richiedono dati. Considera che la CPU (unità centrale di elaborazione) si mette alla ricerca di una posizione di memoria più vicina. Se questi dati richiesti sono trovati nella cache, allora si considerano come hit della cache. Ogni volta che si visita un sito, non ci sarà il bisogno di scaricare nuovamente il contenuto del portale, ma la cache si occuperà di elaborare la richiesta.
Quali sono le penalità delle cache miss
Quando si parla di penalità facciamo riferimento al ritardo causato da una cache miss, che rappresenta quindi il tempo aggiuntivo necessario per una cache che vuole recuperare i dati dalla sua memoria. Per semplificare l’argomento e renderlo più comprensibile è bene spiegare che la gerarchia della memoria è composta da 3 livelli:
- Cache L1: la capacità è più piccola di tutte, ma la cache principale è la più facile da accedere. Ospita il contenuto visitato di recente e dispone di unità di memoria designate in ciascun core della CPU;
- L2: sicuramente più estesa tra le tre e l’accesso richiede più tempo rispetto al livello precedente, ma resta più veloce del livello L3. Ha una memoria fissata in ciascun core della CPU;
- Cache L3: l’ultimo livello è anche il database principale, con una memoria cache più grande e più lenta. Tutti i core di una CPU condividono un L3.
Con un errore nella cache bisogna che il sistema di memorizzazione cerchi ulteriormente nelle unità di memoria. E ciò che non viene trovato nella L1 dovrà essere ricercato nella L2. Più lunga è la fase di ricerca e maggiore è il tempo necessario per completare una richiesta. Ecco allora che comprendiamo l’aumento del tasso di perdita della cache, in particolare dovendo esaminare un database principale per ottenere i dati specifici richiesti.
Come si riduce la perdita di cache?
Cerchiano di non creare allarmismi: i problemi di cache miss e hit sono comuni nello sviluppo di siti internet. La cosa peggiore che possa accedere è la lunga attesa per il recupero di informazioni. Ma è altrettanto importante capire come ridurre le perdite di cache.
1. Aumenta la durata delle cache
Una durata è l’intervallo di tempo che intercorre dal momento della creazione di una copia di dati fino alla sua eliminazione. Se guardiamo le impostazioni predefinite troveremo 10 ore, ma i proprietario di un sito possono anche aumentare e configurare il tempo in base ai propri bisogni. Di solito è preferibile impostare la data di scadenza della cache rispetto alla data di aggiornamento del sito. Se lo fai una volta alla settimana, allora prova a impostare la scadenza giornaliera per le cache.
2. Ottimizza le cache
Ci sono delle precise regole che stabiliscono il mondo in cui una cache va a rimuove le copie dei file dalla sua memoria. Ottimizzandole sarà possibile trovare una politica ideale rispetto al tuo sistema di memorizzazione.
3. Espandi la RAM
Un’altra interessante soluzione è celata nell’espansione della memoria principale (RAM), dove vengono archiviati i programmi utilizzati in tempo reale dalla CPU. Chiaramente maggiore è la capacità della RAM e più dati potrà poi contenere. Ricorda sempre che grazie a questa memoria principale potrai anche assicurarti che non si perdano dati fondamentali, così da ridurre il numero di perdite di cache. Ma aumentando la RAM bisognerà sostenere un costo non indifferenze, che prevede l’aggiornamento del piano di hosting.