Sisukord

Kujutle, et iga kord, kui külastad veebisaiti, peab see kõik andmed nullist läbi töötlema, et laadida pilte, kuvada lehti või hankida teavet. See mitte ainult ei pikenda vastuseaegu, vaid koormab täiendavalt ka serverit ja süsteemiressursse. Just siin tuleb mängu vahemällu salvestamine. Sageli kasutatavaid andmeid kiiremas mälus hoides saab vahemällu salvestamine lühendada andmetele juurdepääsu aega ja parandada süsteemi jõudlust. Aga kuidas vahemällu salvestamine töötab, milliseid vahemällu salvestamise liike on olemas ja millised väljakutsed võivad selle kasutamisel tekkida?

Mis on vahemällu salvestamine?

Vahemällu salvestamine on sageli kasutatavate andmete hoidmine kindlas mälus. Oletame, et pead iga paari minuti järel kasutama mõnda kindlat rakendust või andmeüksust. Kuna nendele andmetele pöördutakse sageli, salvestatakse need kohta, mida nimetatakse vahemäluks, et neid ei peaks iga kasutuskorra ajal uuesti hankima. Vahemällu salvestamise kasutamiseks on palju põhjuseid, kuid üks olulisemaid on andmetele juurdepääsu aja lühendamine.

Kõvakettad on aeglased ja isegi kõige kiiremad neist ei küüni RAM-i ja protsessori kiiruseni. Seetõttu võtab andmete lugemine neilt aega. Vahemälu on aga teistsugune, sest see on kiire mälu liik. Sellise mälu maht on piiratud ja sinna saab salvestada ainult sageli kasutatavaid andmeid.

Vahemällu salvestamise liigid

Selles jaotises vaatame üle vahemällu salvestamise eri liigid ja nende kasutusalad.

  • Kliendipoolne vahemällu salvestamine

    Selle meetodi puhul salvestatakse andmed kliendi poolel, tavaliselt veebibrauseris. Brauser saab hoida oma vahemälus veebilehtede ja ressursside, näiteks piltide, koopiaid, et neid saaks järgmistel külastustel kuvada ilma serverist uuesti laadimata. Näiteks saab brauser lehe viimase muutmise aega kontrollides otsustada, kas vahemällu salvestatud versioon on endiselt kehtiv.
  • Serveripoolne vahemällu salvestamine

    Selle meetodi puhul salvestatakse andmed serveri poolel, et vastata päringutele kiiremini ning vähendada serveri ja võrgu koormust. Üks näide on vahemäluga puhverserveri kasutamine, mis saab päritud sisu salvestada ja vajaduse korral sama sisu teistele kasutajatele edastada. DynaCache IBM WebSphere Application Serveris on veel üks näide serveripoolsest vahemällu salvestamise mehhanismist.
  • Terve lehe vahemällu salvestamine

    Selle meetodi puhul salvestatakse kogu renderdatud veebilehe koopia, et järgmiste päringute korral saaks lehe edastada ilma kõiki sisu genereerimise protsesse uuesti käivitamata. See meetod sobib aga ainult juhul, kui lehe sisu on võimalik vahemällu salvestada ja selle muudatusi hallatakse nõuetekohaselt.
  • Fragmentide vahemällu salvestamine

    Selle meetodi puhul salvestatakse kogu lehe asemel vahemällu lehe kindlad osad eraldi. See lähenemine on kasulik, kui lehel on nii staatilist kui ka dünaamilist sisu. Salvestatavate osade vahemällu panemisega saab lehe jõudlust parandada, ilma et kogu lehte peaks ühe tervikuna vahemällu salvestama.
  • Staatilise sisu vahemällu salvestamine

    Seda meetodit kasutatakse harva muutuva sisu, näiteks graafiliste piltide ja tekstifailide salvestamiseks. Kuna sellist sisu ei ole tavaliselt vaja sageli uuendada, saab selle koopia vahemälus hoidmine vähendada päringute arvu algserverile ja lühendada lehtede laadimisaega.
  • Dünaamilise sisu vahemällu salvestamine

    Selle meetodi puhul salvestatakse vahemällu sisu, mis võib sageli muutuda või mis luuakse kasutaja andmete ja tingimuste põhjal. Kuna dünaamiline sisu võib olla isikupärastatud, on vahemälu kehtivuse haldamine ja selle uuendamise vajaduse kindlaksmääramine eriti olulised. DynaCache IBM WebSphere Application Serveris on näide lahendusest dünaamilise sisu vahemällu salvestamiseks.
Types of Caching

Miks peaksid kasutama vahemällu salvestamist?

Nagu eespool mainitud, on üks vahemällu salvestamise kasutamise põhjusi sageli kasutatavatele andmetele juurdepääsu kiirendamine. Lisaks vähendab vahemällu salvestamine serveri töötluskoormust. Aga miks?

Kui süsteem vajab sageli kindlat andmeüksust ja peab selle salvestusseadmest hankima, ei võta see mitte ainult rohkem aega, vaid nõuab ka CPU ja teiste süsteemiressursside täiendavat tööd. Kui need andmed on aga vahemälus olemas, saab süsteem pöörduda vahemälu poole ja andmed sealt kätte saada, ilma et peaks uuesti salvestusseadmesse pöörduma.

Vahemällu salvestamisel on ka teisi eeliseid, mida on lihtsam mõista näite abil. Oletame, et sul on 10 GB andmeid, mis tuleb salvestada. Kuna protsessor on salvestussüsteemist palju kiirem, ei pruugi salvestussüsteem suuta neid andmeid sama kiiresti salvestada. Just siin tuleb mängu vahemällu salvestamine. Protsessor saadab andmed vahemällu ja vahemälu edastab need salvestussüsteemile sobiva kiirusega. Nii saab protsessor jätkata tööd ilma tarbetute viivitusteta, samal ajal kui andmed salvestatakse korrektselt.

Kuidas mõjutab majutus veebisaidi jõudlust?

Vahemällu salvestamine võib veebisaidi jõudlust märkimisväärselt parandada, kuid see pole ainus tegur, mis määrab, kui kiiresti veebisait laadib. Olulist rolli mängib ka majutuse infrastruktuur. Serveri ressursid, nagu CPU, RAM, salvestusseadme kiirus ja võrgu jõudlus, võivad mõjutada seda, kui kiiresti päringuid töödeldakse, eriti kui veebisaidil on suur liiklus.

Isegi tõhusa vahemällu salvestamise strateegia korral võib veebisaidi jõudlus jääda kehvaks, kui majutuskeskkond ei suuda saidi töökoormusega tõhusalt toime tulla. Piisavate ressursside ja usaldusväärse jõudlusega majutusteenuse valimine aitab lühendada serveri vastuseaegu ja parandada kasutajakogemust. Seega, kui soovid parandada oma veebisaidi kiirust ja jõudlust, võib optimeerimisvõtete rakendamise kõrval olla tõhus samm tutvuda veebimajutuse pakettidega, mis vastavad sinu saidi vajadustele.

Kuidas vahemällu salvestamine töötab?

Vahemällu salvestamisel on eri liike ja see on üks salvestamise vorme. Andmete pärimisel kontrollitakse enne kõvakettalt lugemist vahemälu. Kuna vahemälu maht on aga piiratud, ei saa kõiki süsteemi andmeid sinna salvestada. Seetõttu peab süsteem otsustama, millised andmed vahemällu salvestada.

Teisalt, kui vahemälu on täis ja sinna tuleb lisada uusi, sageli kasutatavaid andmeid, peab süsteem otsustama, millised olemasolevad andmed eemaldada. Selleks on olemas mitmesugused algoritmid, mis hindavad, milliseid andmeid kõige väiksema tõenäosusega uuesti kasutatakse.

Mis on vahemälu möödalask (cache miss)?

Kui rakendus pärib eri tüüpi andmeid, suunatakse päringud vahemällu. Kui päritud andmeid vahemälus ei ole, suureneb vahemälu möödalasude arv. See tähendab, et süsteem on pöördunud vahemälu poole mitu korda, kuid kuna vajalikke andmeid seal polnud, pidi ta need hankima salvestusseadmest.

See vähendab süsteemi jõudlust. Selle probleemi lahendamiseks saab vahemälu mahtu suurendada.

Mis on RAID-kontroller?

RAID-kontroller on serverite riistvarakomponent, mis on spetsiaalselt loodud vahemällu salvestamise ja salvestusseadmete jõudluse parandamiseks. Välkmälu abil pakub selle vahemälu täiendavat salvestusmahtu ja parandab märkimisväärselt serveri jõudlust.

Vahemällu salvestamise väljakutsed

  • Kohalik vahemälu: samade andmete eri versioonide hoidmine mitmes süsteemis võib põhjustada andmete ebakõlasid ja vähendada vahemällu salvestamise tõhusust.
  • Vahemälu sidususe probleem: kui andmed ühes vahemälus muutuvad, muutub väljakutseks nende andmete vastavate koopiate sünkroonis hoidmine teistes vahemäludes.
  • Vahemälust läbitungimine (cache penetration): see tekib siis, kui päritud andmeid pole ei vahemälus ega algses andmebaasis. Bloomi filtri kasutamine aitab seda probleemi vähendada.
  • Vahemälu laviin (cache avalanche): vahemälu rike või suure hulga vahemällu salvestatud kirjete samaaegne aegumine võib saata andmebaasile tohutu hulga päringuid ja põhjustada häireid. Vahemäluklastri ja tööriistade, nagu Hystrix, kasutamine aitab seda probleemi leevendada.

Kokkuvõte

Vahemällu salvestamine on tõhus viis parandada süsteemi jõudlust, lühendada andmetele juurdepääsu aega ja vähendada serverite töötluskoormust. Sõltuvalt süsteemi nõuetest saab sageli kasutatavate andmete salvestamiseks ja kiiremaks edastamiseks kasutada eri vahemällu salvestamise meetodeid. Õige vahemällu salvestamise strateegia valimine ja vahemällu salvestatud andmete nõuetekohane haldamine on aga hädavajalikud, et säilitada jõudlust ja vältida probleeme, nagu vahemälu möödalasud, vahemälu sidususe probleemid ja vahemälu laviinid. Teadmine, kuidas vahemällu salvestamine töötab, millised on selle liigid ja võimalikud väljakutsed, aitab sul süsteemide kavandamisel ja optimeerimisel teha paremaid otsuseid.

KKK

1. Kuidas töötavad vahemälust eemaldamise algoritmid?

Vahemälust eemaldamise algoritmid määravad, millised andmed tuleb eemaldada, kui vahemälu saab täis. Sellised algoritmid nagu LRU (Least Recently Used – kõige kauem kasutamata) ja LFU (Least Frequently Used – kõige harvemini kasutatud) valivad andmed selle põhjal, kui hiljuti või kui sageli neile on pöördutud.

Mõlema meetodi kasutamine parandab dedikeeritud serveri turvalisust ja teenuse kättesaadavust.

2. Mis on vahemälu sidusus ja miks see on oluline?

Vahemälu sidusus tagab, et samade andmete mitu vahemällu salvestatud koopiat jäävad muudatuste korral omavahel kooskõlla. See on eriti oluline hajussüsteemides ja mitmeprotsessorilistes keskkondades, kus mitu vahemälu võivad hoida samade andmete koopiaid.