Što je Cache i microcache?
Pročitajte što je to Cache i microcache u našem rječniku.
Pomoći će vam da bolje razumijete o čemu se točno radi Cache i microcache i koje je značenje u svakodnevnoj upotrebi.

Cache i microcache
Predmemorija
Predmemorija (keš memorija) je tehnika korištena u informatičkoj tehnologiji za pohranu kopija podataka s ciljem ubrzanja pristupa tim podacima u budućnosti. Predmemorija djeluje na način da pohranjuje najčešće korištene podatke u brži, ali obično manje kapacitetan medij memorije, što omogućava brži pristup nego što je to slučaj s prvobitnim izvorom podataka, koji može biti pohranjen na sporijim memorijama ili na disku.
Mehanizmi predmemoriranja objekata na stranicama imaju mnogo prednosti. Većina elemenata servisa su statički objekti, npr. datoteke slike JPEG/PNG, datoteke koje sadrže kod JavaScript, CSS itd. Korištenje mehanizama Predmemorije kod ovih datoteka znatno ubrzava učitavanje stranice. Dodatno, može se koristiti tehnika predmemoriranja dinamički generiranih elemenata, te tehnike se nazivaju Mikropredmemorija.
Postoji nekoliko vrsta predmemorije u informatičkoj tehnologiji, od kojih je svaka optimizirana za specifične primjene:
- Predmemorija procesora: Moderni procesori imaju nekoliko razina predmemorije koje pohranjuju kopije podataka i uputa koje procesor najčešće koristi. To procesoru omogućava brzi pristup tim podacima, što ubrzava izvođenje operacija.
- Predmemorija operativne memorije (RAM): Operativni sustavi također mogu koristiti predmemoriju u RAM-u za pohranu kopija najčešće korištenih podataka ili blokova memorije. To omogućava brži pristup tim podacima putem programa.
- Predmemorija diska: Tvrdi diskovi i drugi uređaji za pohranu podataka također mogu koristiti predmemoriju za pohranu kopija često upotrebljavanih podataka. Zahvaljujući tome, čitanja i pisanja mogu biti ubrzana kada se podaci već nalaze u predmemoriji.
- Predmemorija internetskog pretraživača: Internetski pretraživači često koriste predmemoriju za pohranu lokalnih kopija internetskih stranica, slika i drugih resursa. Zahvaljujući tome, stranice se učitavaju brže, jer pretraživač ne mora preuzimati sve podatke svaki put kada korisnik posjeti istu stranicu.
Predmemorija je izuzetno važan element u optimizaciji učinkovitosti informatičkih sustava jer omogućava brži pristup podacima, smanjuje opterećenje sustava i poboljšava ukupnu reaktivnost aplikacija i sučelja korisnika.
Metode predmemoriranja
Postoji nekoliko metoda keširanja statičnih datoteka, a među najpopularnijima su:
- Lokalni cache – može se realizirati kroz različite konfiguracije servera. HTTP server također može podržavati cache putem dodatnih modula, a sama aplikacija može graditi vlastiti cache. Važno je osigurati da se lokalni cache nalazi u memoriji servera ili na brzom mediju za pohranu koji može podnijeti veliki broj I/O operacija uz vrlo nisko vrijeme pristupa.
- CDN – Content Delivery Network – Zahvaljujući CDN-u, podaci se poslužuju bliže korisniku, što omogućuje bolje skaliranje aplikacije, rasterećenje infrastrukture i preusmjeravanje značajnog dijela korisničkog prometa na CDN.
- Cache server – Prije aplikacijskih servera može se koristiti cache poslužitelj, npr. kao modul za load balancer ili zasebni softver poput Varnisha.
Većina analiza vezanih uz cache usmjerena je na ubrzanje učitavanja stranice. Međutim, svi oblici cachea imaju dodatne prednosti koje je teže izmjeriti, ali su izuzetno važne s aspekta performansi pri velikom prometu, primjerice oslobađanje resursa poslužitelja na backendu, omogućujući mu da s punim kapacitetom poslužuje dinamičke sadržaje.
Ideja pokretanja PHP skripti (ili druge tehnologije) na jednom poslužitelju, koji svaki put vraća najsvježiji sadržaj korisnicima, vrlo je jednostavno rješenje. Međutim, u slučaju povećanog prometa može dovesti do problema s performansama.
Metoda mikrocachinga omogućuje spremanje dinamički generiranog elementa stranice u cache na kratko vrijeme, npr. nekoliko sekundi. Ova vrsta cachea, kada se radi o stranici s desecima ili stotinama zahtjeva u sekundi, značajno smanjuje opterećenje poslužitelja (jer se stranice učitavaju iz cachea), uz minimalan utjecaj na prikazani sadržaj.
Najbrži mehanizmi cacheiranja su oni koji koriste podatke pohranjene u memoriji poslužitelja ili na brzim SSD/NVMe diskovima. Zato je jedan od ključnih parametara pri odabiru cache mehanizama količina dostupne RAM memorije koja može biti iskorištena za cache. Popularna rješenja neovisna o tehnologiji u kojoj su stranice izrađene uključuju softvere poput Varnisha ili Squida.
Dobre prakse vezane uz cacheiranje
- Mnoge aplikacije sadrže neku vrstu cacheiranja, ali ne možete pretpostaviti da će sve raditi glatko u slučaju velikog prometa samo zato što je opcija “Omogući Cache” označena.
- Trebate izvršiti profesionalne testove performansi koji će pokazati stvarnu učinkovitost aplikacije/sustava/infrastrukture pri pojačanom prometu.
- Treba obratiti posebnu pažnju na HTTP zaglavlja, jer u zaglavljima obično postoji informacija o tome jesu li podaci koje smo primili bili posluženi iz cache-a.
- Dobro je koristiti alat varnishstat za Varnish softver, koji će točno pokazati koliko je cache učinkovit.