Wat is een cache?

Bij het opvragen van gegevens uit welke bron dan ook, is er altijd enige vertraging. Ping naar webservers wordt gemeten in milliseconden, opslagtoegangstijd kan latenties hebben in microseconden, terwijl RAM-latentie wordt gemeten in CPU-klokcycli. Natuurlijk zouden dit soort snelheden enkele decennia geleden ondenkbaar zijn geweest, maar tegenwoordig zijn ze nooit snel genoeg. Toegangssnelheid is regelmatig een vorm van bottleneck in de prestaties. Een van de manieren waarop dit kan worden aangepakt, is met caching.

Caching is een proces waarbij een tijdelijke kopie van een bron wordt opgeslagen op een manier die sneller toegankelijk is dan normaal. Er is een enorm scala aan implementaties, zowel in software als hardware. Caches kunnen fungeren als leescaches, schrijfcaches of beide.

Lees caches

In een leescache worden eerder opgevraagde gegevens opgeslagen in een cache voor snellere toegang. In sommige scenario's kan de cache zelfs preventief worden geladen met gegevens, waardoor het eerste verzoek vanuit de cache kan worden uitgevoerd in plaats van alleen volgende verzoeken.

De leescache waarmee u waarschijnlijk bekend bent, is de browsercache. Hier slaat de browser een lokale kopie op van de gevraagde bronnen. Dit betekent dat als en wanneer de webpagina opnieuw wordt geladen of een vergelijkbare pagina wordt geladen die veel van dezelfde inhoud gebruikt, die inhoud kan worden aangeboden vanuit de cache in plaats van vanaf de webserver. Dit betekent niet alleen dat de webpagina sneller kan worden geladen, maar het vermindert ook de belasting van de webserver en vermindert de hoeveelheid gegevens die de gebruiker moet downloaden, wat belangrijk kan zijn bij gemeten verbindingen.

RAM zelf fungeert ook als leescache voor gegevens op de harde schijf. In dit geval worden gegevens voor een lopend programma preventief in het RAM geladen, zodat de CPU er sneller toegang toe heeft. Gegevens van de RAM worden vervolgens verder in de cache opgeslagen in de CPU-cache, hoewel het proces hiervoor een stuk complexer is omdat de CPU-cache wordt gemeten in megabytes en niet in gigabytes.

Schrijf caches

Een schrijfcache is een cache die gegevens kan absorberen die naar een langzamer apparaat worden geschreven. Een bekend voorbeeld hiervan is de SLC-cache in moderne SSD's. Door deze cache kunnen gegevens niet sneller worden gelezen, maar het is veel sneller om naar te schrijven dan naar de TLC- of QLC-flash die de rest van de SSD vormt. De SLC-cache kan schrijfbewerkingen met hoge snelheid absorberen en laadt die gegevens vervolgens zo snel mogelijk naar de TLC-flash die een veel betere opslagdichtheid biedt, maar ook een stuk langzamer is om naar te schrijven. Door het flash-geheugen op deze manier te gebruiken, wordt het geoptimaliseerd voor zowel hoge schrijfsnelheden als een hoge opslagdichtheid.

Hybride caches

Er zijn veel manieren om met caches om te gaan, waardoor ze zowel als lees- als schrijfcache kunnen fungeren. Elk van deze methoden verwerkt schrijfbewerkingen op een andere manier en heeft voor- en nadelen. De drie opties zijn write-around, write-through en write-back. Een write-around cache slaat de cache volledig over tijdens het schrijven, de write-through-cache schrijft naar de cache, maar beschouwt de bewerking pas als voltooid wanneer deze naar de opslag is geschreven. De terugschrijfcache schrijft naar de cache en beschouwt de bewerking vervolgens als voltooid, en vertrouwt op de cache om deze indien nodig naar de opslag over te brengen.

Rondschrijven kan handig zijn als u een groot aantal schrijfbewerkingen verwacht, omdat het cacheverloop tot een minimum wordt beperkt. Het betekent echter wel dat een bewerking die vervolgens een van die geschreven gegevens leest, de eerste keer ten minste één cache-misser zal tegenkomen. Doorschrijfcaches cachen onmiddellijk schrijfbewerkingen, wat betekent dat het resultaat de eerste keer dat het wordt opgevraagd vanuit de cache kan worden geleverd. Om echter als voltooid te worden beschouwd, moet een schrijfbewerking de gegevens ook naar schijf schrijven, wat latentie toevoegt. Een write-back cache heeft hetzelfde voordeel als een write-through, waardoor geschreven gegevens onmiddellijk vanuit de cache kunnen worden bediend. Het vereist echter geen schrijfbewerkingen om naar schijf te schrijven om als voltooid te worden beschouwd. Dit vermindert de schrijflatentie, maar brengt het risico van gegevensverlies met zich mee als de cache vluchtig is en het schrijven van de gegevens naar de opslag niet is voltooid voordat de stroom uitvalt.

Hoe verwijder ik gegevens uit de cache?

Een van de beperkende factoren van elke cache is capaciteit. Het duurt lang om een ​​grote cache te doorzoeken, waardoor een groot deel van het voordeel van het gebruik van een cache teniet wordt gedaan. Geheugentechnologieën die voor caching worden gebruikt, zijn ook vaak duurder dan het geheugen waaruit ze cachen. Als dit niet het geval was, zou die geheugenlaag waarschijnlijk van geheugentechnologie zijn veranderd om de prestaties te verbeteren. Beide factoren betekenen dat caches vaak relatief klein zijn, vooral in vergelijking met het opslagmedium waarvan ze cachen. RAM heeft minder capaciteit dan opslag en CPU-cache heeft minder capaciteit dan RAM. De SLC-cache heeft minder capaciteit dan het TLC-geheugen.

Dit alles betekent dat het vaak nodig is om gegevens uit de cache te halen om ruimte vrij te maken voor nieuwe gegevens die in de cache moeten worden opgeslagen. Hiervoor zijn verschillende benaderingen mogelijk. "Minst vaak gebruikt", geeft er de voorkeur aan om cachevermeldingen met het laagste aantal toegangen te verwijderen. Dit kan handig zijn om te voorspellen welke vermeldingen het minste effect zullen hebben op toekomstige cache-missers, maar zou ook zeer recent toegevoegde vermeldingen tellen als een laag aantal toegangen, wat kan leiden tot cacheverloop.

"Minst recent gebruikt" geeft er de voorkeur aan cachevermeldingen te verwijderen die al een tijdje niet zijn gebruikt. Hierbij wordt ervan uitgegaan dat ze momenteel niet worden gebruikt, maar wordt er geen rekening mee gehouden als ze een tijdje geleden intensief werden gebruikt. "Meest recent gebruikt" geeft er de voorkeur aan om de meest recent gebruikte cachevermeldingen te verwijderen, ervan uitgaande dat ze zijn gebruikt en niet opnieuw hoeven te worden gebruikt. De beste aanpak is over het algemeen een combinatie van alle drie, op basis van gebruiksstatistieken.

Verouderde informatie en veiligheidsrisico's

Het grootste risico van caches is dat de informatie die ze bevatten oud kan worden. Een cachevermelding wordt als verouderd beschouwd wanneer de oorspronkelijke gegevens zijn bijgewerkt, waardoor de cachevermelding verouderd is. Het is belangrijk om regelmatig te controleren of de live kopie die wordt geleverd nog steeds overeenkomt met de kopie in de cache.

Met name op websites is het ook uiterst belangrijk om vast te stellen welke gegevens wel en niet in de cache kunnen worden opgeslagen. Het is bijvoorbeeld prima als een groot, onveranderlijk JavaScript-bestand in de cache wordt opgeslagen. Dit voorkomt dat de gebruiker het elke keer moet downloaden en kan zelfs profiteren van andere gebruikers die door dezelfde cache worden bediend. U kunt echter geen sessiespecifieke gegevens cachen. Stel je voor wat er zou gebeuren als je naar een berichten-app bladerde terwijl je als jezelf was aangemeld, en ontdekte dat je een gecachte versie van de berichten van een andere gebruiker te zien kreeg. Gelukkig kunnen webservers specificeren welke bronnen wel en niet in de cache kunnen worden opgeslagen en deze problemen zijn algemeen bekend, dus er zijn maar weinig van dit soort problemen.

Conclusie

Een cache is een deel van het geheugen waarin recentelijk gebruikte gegevens kunnen worden opgeslagen op een opslagmethode die sneller toegankelijk is dan wanneer het normale gegevenstoegangsproces opnieuw zou moeten worden voltooid. Een cache heeft doorgaans een beperkte capaciteit, wat betekent dat de cache items moet verwijderen zodra deze vol is. Caches zijn over het algemeen transparant voor de gebruiker, wat betekent dat latentie de enige indicatie is dat het resultaat via een cache is geleverd.



Leave a Comment

Hoe een harde schijf te klonen

Hoe een harde schijf te klonen

In het moderne digitale tijdperk, waarin gegevens een waardevol bezit zijn, kan het klonen van een harde schijf op Windows voor velen een cruciaal proces zijn. Deze uitgebreide gids

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Hoe repareer ik het stuurprogramma WUDFRd kan niet worden geladen op Windows 10?

Krijgt u tijdens het opstarten van uw computer de foutmelding dat het stuurprogramma WUDFRd niet op uw computer kan worden geladen?

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Hoe u NVIDIA GeForce Experience-foutcode 0x0003 kunt oplossen

Ervaar je NVIDIA GeForce-ervaring met foutcode 0x0003 op je desktop? Zo ja, lees dan de blog om te zien hoe u deze fout snel en eenvoudig kunt oplossen.

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

3D-printen: problemen oplossen met het buigen van de onderkant van de print (olifantenpoot)

Het kan vervelend zijn om te maken te krijgen met buigingen aan de onderkant van een afdruk. Hier ziet u hoe u de olifantenpoot kunt repareren in 3D-printen.

Basisprincipes van 3D-printen: hechting van het printerbed

Basisprincipes van 3D-printen: hechting van het printerbed

Leren over 3D-printen? Dit is wat u moet weten over ahesie van het printerbed.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Fix Roku speelt geen audio of video af

Fix Roku speelt geen audio of video af

Als Roku geen audio of video afspeelt, biedt deze gids voor probleemoplossing u een reeks handige oplossingen om het probleem op te lossen.

Fix Roku-kanaal kon inhoud niet laden

Fix Roku-kanaal kon inhoud niet laden

Als Roku een foutmelding geeft dat de inhoud op de kanalen niet kan worden geladen, kunt u uw apparaat opnieuw opstarten of een nieuw account maken.

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Oplossing: Chromebook laadt geen afdrukvoorbeeld

Als uw Chromebook het afdrukvoorbeeld niet kan laden, start u uw laptop, printer en router opnieuw op. Verwijder bovendien de printer en installeer deze opnieuw.

Een GPU verwijderen van een Windows-pc in 2023

Een GPU verwijderen van een Windows-pc in 2023

Moet u de GPU van uw pc verwijderen? Ga met me mee terwijl ik uitleg hoe je een GPU van je pc verwijdert in deze stapsgewijze handleiding.