Cache Miss și Cache Hit: când apar (și cum să creșteți rata de accesare a cache)

Publicat: 2022-05-04

Optimizarea performanței site-ului dvs. fără o politică solidă de stocare în cache este ca și cum ați încerca să construiți o casă pe nisipuri mișcătoare.

Puteți folosi cele mai bune materiale și instrumente, dar atunci când fundația nu este solidă, veți simți întotdeauna că ceva vă împiedică progresul.

Politica dvs. de stocare în cache este coloana vertebrală a performanței web excepționale a site-ului dvs. web. Dacă aveți un sistem de stocare în cache adecvat, puteți îmbunătăți drastic viteza site-ului dvs.

Dimpotrivă, fără o configurare bună de cache, solicitările vizitatorilor dvs. vor duce la pierderi de memorie cache, care la rândul lor vor încetini timpul de încărcare a paginii.

Și cache miss este doar unul dintre subiectele care vor fi acoperite în următoarele rânduri împreună cu:

  • O scurtă introducere în cache;
  • Ce este un Cache Miss?;
  • Ce este un cache Hit?;
  • Ce este cache Hit Ratio și cum se calculează?;
  • Ce este un raport bun de accesare a memoriei cache?;
  • Cum se mărește rata de accesare a memoriei cache?;
  • NitroPack - cel mai simplu mod de a obține un excelent raport de accesare a cache-ului.

Sa incepem!

O scurtă introducere în caching

Înainte de a pătrunde în lumea hit-urilor și ratelor cache-ului, este esențial să înțelegeți cum funcționează memoria cache, ce scop servește și de ce este considerată cea mai bună strategie de optimizare a vitezei.

Pentru a înțelege stocarea în cache, trebuie să facem un pas înapoi și să urmăm întregul proces care ia parte în culise atunci când un vizitator solicită site-ul dvs.

Site-ul dvs. este format din documente HTML, fișiere JavaScript și CSS, imagini etc. Toate sunt stocate pe serverul dvs. de origine. Când cineva dorește să vă viziteze site-ul web, browserul său trimite o solicitare către serverul dvs. de origine, care la rândul său trimite înapoi un răspuns cu toate fișierele necesare.

Cum funcționează web

Când aveți 10 vizitatori care solicită simultan fișierele site-ului dvs., nu ar trebui să existe nicio problemă, iar serverul dvs. le poate gestiona destul de ușor.

Cu toate acestea, acest model nu funcționează atunci când 100.000 de vizitatori doresc să vă viziteze site-ul.

Serverele au o limită a numărului de solicitări pe care le pot gestiona simultan și fiecare cerere după această limită intră într-o coadă, ceea ce duce la timpi de încărcare mai mari pentru vizitatorii tăi.

Coadă

Acolo intervine memorarea în cache.

Pe scurt, memorarea în cache este procesul de salvare a unei copii a datelor site-ului dvs. (HTML, CSS, JS, imagini etc.) într-o locație diferită numită cache web.

Cache-ul web joacă rolul de intermediar între utilizatori și originea dumneavoastră. În acest fel, cererile lor sunt servite din cache și nu sunt preluate de pe serverul dvs.

Memorarea în cache

Drept urmare, paginile dvs. se încarcă mult mai repede.

Puteți găsi numeroase tipuri de clasificări de stocare în cache. Dar în scopul acestui articol și pentru a înțelege când apar accesări și erori în cache, vom arunca o privire asupra celor mai populare două tipuri - browser și cache proxy.


Memorarea în cache a browserului

Fiecare browser are propria sa politică de stocare în cache și poate stoca date local pe computerul unui utilizator.

Acest lucru este util deoarece face ca încărcarea unei pagini vizitate anterior să fie foarte rapidă. De fapt, memorarea în cache a browserului este principalul motiv pentru care butoanele înapoi și înainte își pot face magia.

Memorarea în cache a browserului

Din păcate, memorarea în cache a browserului este limitată la funcționarea pe dispozitiv. Dar cel mai mare avantaj al său este că poate salva solicitări întregi de rețea, ceea ce îl face un must-have.


Memorarea în cache a serverului proxy

Memorarea în cache proxy ajută la atenuarea încărcăturii de pe server și la livrarea conținutului relativ mai rapid utilizatorilor finali. Cel mai bun scenariu este atunci când stocarea în cache proxy funcționează mână în mână cu memorarea în cache a browserului.

Serverele proxy sunt distribuite în toată lumea. Acestea sunt de obicei întreținute de furnizorii CDN (Content Delivery Network).

Proxy-urile sunt intermediari între utilizator și serverul de origine. Le puteți folosi pentru a stoca în cache conținut în diferite locații și, astfel, conținutul dvs. va fi mai aproape de utilizatori, reducând latența și traficul de rețea:

Cu CDN

Spre deosebire de stocarea în cache a browserului, memorarea în cache a serverului proxy nu este limitată pe dispozitiv și poate servi simultan conținut pentru mai mulți utilizatori.

Acesta este esenta stocării în cache. Este un subiect nuanțat și mai sunt multe de desfășurat - avantaje și dezavantaje ale diferitelor tipuri de stocare în cache, cum să configurați regulile de stocare în cache și multe altele.

Dar nu acesta este punctul central al acestui articol.

Dacă doriți să aprofundați subiectul, puteți consulta articolul nostru - Web Caching 101: Beginner's Guide To HTTP Caching (Examples, Tips and Strategies)

Sau urmăriți videoclipul nostru de pe YouTube:

Deocamdată, este important să rețineți că, dacă datele solicitate nu sunt găsite în memoria cache web, atunci încep să apară întârzierile și problemele. Acest lucru ne duce la o pierdere de cache.


Ce este un Cache Miss?

O pierdere a memoriei cache apare atunci când un sistem, o aplicație sau un browser solicită să preia date din memoria cache, dar acele date nu au putut fi găsite momentan în memoria cache.

Când are loc o pierdere a memoriei cache, cererea este redirecționată către serverul de origine.

Odată ce datele sunt preluate de la origine, acestea sunt apoi copiate și stocate în memoria cache în așteptarea unor cereri viitoare similare pentru aceleași date.

Există mai multe motive pentru care să apară o pierdere a memoriei cache.

De exemplu, datele specifice nu au fost niciodată stocate în cache.

Să presupunem că aveți un site de comerț electronic și tocmai ați adăugat o pagină de produs nouă. Toate imaginile, fișierele HTML, CSS și JavaScript nu au fost niciodată adăugate în memoria cache, deoarece nimeni nu le-a cerut vreodată. Aceasta înseamnă că primul tău vizitator va trebui să trimită o solicitare la origine pentru a încărca pagina. După prima solicitare, datele vor fi transferate în cache și servite din acesta.

O altă posibilitate de pierdere a memoriei cache este că datele din cache au fost eliminate la un moment dat.

Din nou, există mai multe lucruri care ar fi putut duce la acel scenariu - era nevoie de mai mult spațiu, o aplicație a solicitat eliminarea sau politica Time to Live privind datele a expirat.

Vom atinge mai multe despre Time to Live mai târziu în articol.

Oricare ar fi motivul, adevărul este că fiecare pierdere a memoriei cache duce la latență mai lungă, timpi de încărcare lenți, experiență proastă a utilizatorului și vizitatori nemulțumiți.

Cu toate acestea, nu vreau să vă las cu impresia că trebuie să obțineți accesări cache 100% din timp. Asta nu este realist.

În plus, există unele cazuri în care sunt necesare pierderi de memorie cache, deoarece ar putea fi necesar să vă asigurați că conținutul pe care îl difuzați este întotdeauna actualizat.

De exemplu, un site de știri precum bbc.com își poate schimba conținutul paginii de start de mai multe ori pe parcursul zilei, deoarece știrile de ultimă oră trebuie raportate. În acest caz, o lovitură în cache înseamnă că cititorii lor nu au văzut cea mai recentă versiune a site-ului lor web și, respectiv, au ratat cele mai recente știri.

Deci, există un avantaj la apariția unei erori de cache.

Cu toate acestea, dacă nu aveți un site de știri și nu vă schimbați în mod regulat conținutul, ar trebui să urmăriți să mențineți rata de pierdere a memoriei cache cât mai scăzută și accesările din cache cât mai ridicate.


Ce este un cache Hit?

O lovitură de cache are loc atunci când datele solicitate sunt servite cu succes din cache.

De exemplu, dacă un utilizator vizitează una dintre paginile dvs. de produse care ar trebui să afișeze o imagine a produsului pe care îl vindeți, browserul său va trimite o solicitare pentru această imagine în memoria cache (browser sau CDN). Dacă CDN-ul are o copie a imaginii în stocare, cererea are ca rezultat o accesare în cache, iar imaginea este trimisă înapoi în browser.


Ce este rata de accesare a memoriei cache și cum se calculează?

Rata de accesare a memoriei cache măsoară câte solicitări a livrat cu succes un cache din stocarea sa, în comparație cu câte solicitări a primit în total.

Un raport mare de accesare a cache-ului înseamnă că majoritatea solicitărilor utilizatorilor dvs. au fost îndeplinite de cache, ceea ce înseamnă că aceștia au experimentat timpi de încărcare mai rapizi.

Puteți calcula rata de accesare a cache-ului folosind această formulă:

Formula pentru rata de accesare în cache

Cu toate acestea, s-ar putea să nu fie necesar, deoarece majoritatea furnizorilor CDN calculează acest lucru pentru dvs.

Tabloul de bord NitroPack afișează și aceste informații:

NitroPack CHR


Ce este un raport bun de accesări în cache?

Ca regulă generală - un raport de acces la cache de 80% sau mai mare este un rezultat bun , deoarece înseamnă că majoritatea solicitărilor sunt servite din cache.

Orice sub 80% pe site-urile web statice indică o politică ineficientă de stocare în cache.

Potrivit Cloudflare, unul dintre cei mai mari furnizori de CDN din lume:

„Un site web obișnuit care este alcătuit în mare parte din conținut static ar putea avea cu ușurință un raport de accesare în cache în intervalul 95-99%.

Rata globală de accesare a cache-ului pentru NitroPack este de 90%. Iar aproximativ 70% dintre toți utilizatorii NitroPack experimentează un cache Hit Ratio de 80% sau mai mare.


Cum să creșteți rata de accesare a memoriei cache?

Puteți lua pași specifici pentru a reduce numărul de pierderi în cache și, prin urmare, pentru a crește rata de accesare a cache-ului.

1. Configurați reguli de stocare în cache în funcție de nevoile site-ului dvs. web

Antetul cache-control vă permite să setați o multitudine de reguli diferite de stocare în cache pentru a optimiza difuzarea conținutului.

Unele dintre reguli includ:

  • no-store spune cache-urilor web să nu stocheze nicio versiune a resursei în nicio circumstanță;
  • no-cache spune cache-ului web că trebuie să valideze conținutul stocat în cache cu serverul de origine înainte de a-l servi utilizatorilor;
  • max-age setează perioada maximă de timp (în secunde) în care memoria cache poate păstra resursa salvată înainte de a o re-descărca sau de a o revalida cu serverul de origine. După aceea, conținutul este marcat ca învechit;
  • s-maxage face exact același lucru ca max-age, dar numai pentru cache-urile proxy;
  • private le spune cache-urilor web că numai cache-urile private pot stoca răspunsul;
  • public marchează răspunsul ca fiind public. Orice cache intermediar poate stoca răspunsuri marcate cu această instrucțiune;

Antetul de control al memoriei cache

Ar trebui să setați un Time to Live (cât timp va păstra memoria cache pe datele dvs. înainte de a prelua informații actualizate de la origine) care se potrivește cel mai bine conținutului dvs.

De exemplu, dacă un activ se schimbă aproximativ o dată la două luni, un antet cu vârsta maximă de 50 de zile poate fi adecvat. Cu toate acestea, dacă activul este schimbat zilnic, este posibil să doriți să utilizați un antet fără cache .

Puteți găsi mai multe informații despre anteturile de control al memoriei cache, actualitatea memoriei cache și validarea în videoclipul nostru de pe YouTube:

2. Ignorați parametrii UTM

Rularea mai multor campanii publicitare (de exemplu, reclame Facebook, reclame Google etc.) generează adrese URL diferite cu parametri UTM specifici.

Ca rezultat, aveți o singură pagină cu mai multe variante (parametri UTM diferiți) care trebuie optimizate.

Etichete UTM

Aceasta este o problemă, deoarece fiecare variație URL este considerată a fi un obiect unic și fiecare solicitare va fi direcționată către serverul de origine.

În consecință, fiecare solicitare va fi clasificată ca pierdere a memoriei cache, chiar dacă conținutul solicitat a fost disponibil în memoria cache web.

Acest lucru duce la un raport de accesare în cache inutil mai mic.


NitroPack - Cel mai simplu mod de a obține un raport excelent de accesare a memoriei cache

După tot ceea ce am acoperit, întregul proces de obținere a unui raport ridicat de acces la cache ar putea suna puțin copleșitor.

Vestea bună este că, dacă lucrați cu un furnizor CDN, majoritatea lucrurilor pe care le-am menționat, cum ar fi anteturile cach-control, ar putea fi deja îngrijite pentru dvs.

Pentru orice altceva, puteți utiliza un plugin de cache.

De exemplu, NitroPack vine cu funcții ieșite din cutie care garantează un raport ridicat de accesare a cache-ului utilizatorilor noștri. Aceasta include:

  • Cache Warmup va simula vizitele organice pe site-ul dvs., ceea ce duce automat la NitroPack să pregătească versiuni optimizate (în cache) ale site-ului dvs. pentru desktop și dispozitive mobile.
  • Invalidarea cache-ului marchează conținutul stocat în cache ca „învechit”, dar îl continuă să-l difuzeze până când este disponibil conținutul nou optimizat. Drept urmare, vizitatorii dvs. văd întotdeauna conținut optimizat, chiar dacă acesta poate fi depășit pentru o perioadă scurtă de timp.
  • CDN încorporat, care elimină nevoia de a sincroniza CDN-ul cu pluginul de cache ales. Adesea, acest lucru necesită timp, este incomod și poate cauza probleme neașteptate.
  • O opțiune de parametru ignorat care permite NitroPack să ignore unii parametri UTM (și alți) utilizați în mod implicit, astfel încât să nu aveți nevoie să vă faceți griji atunci când rulați campaniile de marketing.

Prameters ignorat

Dar nu trebuie să mă crezi pe cuvânt. Testați NitroPack gratuit și vedeți singur impactul acestuia.