Was ist ein Cache?

Beim Anfordern von Daten aus beliebigen Quellen kommt es immer zu Verzögerungen. Ping zu Webservern wird in Millisekunden gemessen, die Speicherzugriffszeit kann Latenzen im Mikrosekundenbereich aufweisen, während die RAM-Latenz in CPU-Taktzyklen gemessen wird. Natürlich wären solche Geschwindigkeiten vor ein paar Jahrzehnten noch undenkbar gewesen, aber in der Gegenwart sind sie nie schnell genug. Die Zugriffsgeschwindigkeit ist regelmäßig ein Leistungsengpass. Eine Möglichkeit, dies zu beheben, ist das Caching.

Caching ist ein Prozess, bei dem eine temporäre Kopie einer Ressource so gespeichert wird, dass schneller als normal darauf zugegriffen werden kann. Es gibt eine große Auswahl an Implementierungen sowohl in Software als auch in Hardware. Caches können als Lese-Caches, Schreib-Caches oder beides fungieren.

Cache lesen

In einem Lesecache werden zuvor angeforderte Daten für einen schnelleren Zugriff in einem Cache gespeichert. In einigen Szenarios kann der Cache sogar präventiv mit Daten geladen werden, was es ermöglicht, dass die erste Anfrage aus dem Cache bedient wird und nicht nur nachfolgende Anfragen.

Der Lese-Cache, mit dem Sie wahrscheinlich am ehesten vertraut sind, ist der Browser-Cache. Hier speichert der Browser eine lokale Kopie der angeforderten Ressourcen. Dies bedeutet, dass, wenn die Webseite neu geladen wird oder eine ähnliche Seite geladen wird, die einen Großteil des gleichen Inhalts verwendet, dieser Inhalt aus dem Cache und nicht vom Webserver bereitgestellt werden kann. Dies bedeutet nicht nur, dass die Webseite schneller geladen werden kann, sondern reduziert auch die Belastung des Webservers und reduziert die Datenmenge, die der Benutzer herunterladen muss, was bei getakteten Verbindungen wichtig sein kann.

RAM selbst fungiert auch als Lese-Cache für Daten auf der Festplatte. In diesem Fall werden Daten für ein laufendes Programm präventiv in den Arbeitsspeicher geladen, damit die CPU schneller darauf zugreifen kann. Daten aus dem RAM werden dann weiter im CPU-Cache zwischengespeichert, obwohl der Prozess dafür viel komplexer ist, da der CPU-Cache in Megabyte und nicht in Gigabyte gemessen wird.

Caches schreiben

Ein Schreib-Cache ist ein Cache, der Daten absorbieren kann, die auf ein langsameres Gerät geschrieben werden. Ein gängiges Beispiel hierfür wäre der SLC-Cache in modernen SSDs. Dieser Cache ermöglicht kein schnelleres Lesen von Daten, aber das Schreiben ist viel schneller als das Schreiben auf den TLC- oder QLC-Flash, aus dem der Rest der SSD besteht. Der SLC-Cache kann Hochgeschwindigkeits-Schreibvorgänge absorbieren und diese Daten dann so schnell wie möglich auf den TLC-Flash auslagern, der eine viel bessere Speicherdichte bietet, aber auch viel langsamer zu schreiben ist. Die Verwendung des Flash-Speichers auf diese Weise optimiert ihn sowohl für schnelle Schreibgeschwindigkeiten als auch für eine hohe Speicherdichte.

Hybrid-Caches

Es gibt viele Möglichkeiten, Caches zu handhaben, die es ihnen ermöglichen, sowohl als Lese- als auch als Schreib-Cache zu fungieren. Jede dieser Methoden handhabt Schreiboperationen unterschiedlich und hat Vor- und Nachteile. Die drei Optionen sind Umschreiben, Durchschreiben und Zurückschreiben. Ein Write-Around-Cache überspringt den Cache beim Schreiben vollständig, der Write-Through-Cache schreibt in den Cache, betrachtet den Vorgang jedoch erst als abgeschlossen, wenn er in den Speicher geschrieben wurde. Der Write-Back-Cache schreibt in den Cache und betrachtet den Vorgang dann als abgeschlossen, wobei er sich auf den Cache verlässt, um ihn bei Bedarf in den Speicher zu übertragen.

Write-Around kann nützlich sein, wenn Sie eine große Menge an Schreibvorgängen erwarten, da es Cache-Churn minimiert. Es bedeutet jedoch, dass eine Operation, die dann irgendwelche dieser geschriebenen Daten liest, beim ersten Mal mit mindestens einem Cache-Fehltreffer konfrontiert wird. Write-Through-Caches speichern Schreibvorgänge sofort im Cache, was bedeutet, dass das Ergebnis aus dem Cache bereitgestellt werden kann, wenn es zum ersten Mal angefordert wird. Um jedoch als abgeschlossen zu gelten, muss ein Schreibvorgang die Daten auch auf die Festplatte schreiben, was die Latenz erhöht. Ein Write-Back-Cache hat den gleichen Vorteil wie ein Write-Through, da geschriebene Daten sofort aus dem Cache bereitgestellt werden können. Es sind jedoch keine Schreibvorgänge erforderlich, um auf die Festplatte zu schreiben, um als abgeschlossen zu gelten. Dies reduziert die Schreiblatenz, birgt jedoch das Risiko eines Datenverlusts, wenn der Cache flüchtig ist und das Zurückschreiben der Daten in den Speicher nicht beendet, bevor die Stromversorgung unterbrochen wird.

Wie entferne ich Daten aus dem Cache?

Einer der limitierenden Faktoren eines Caches ist die Kapazität. Das Durchsuchen eines großen Caches dauert lange, was einen guten Teil des Vorteils der Verwendung eines Caches von vornherein zunichte macht. Speichertechnologien, die für das Caching verwendet werden, sind tendenziell auch teurer als der Speicher, aus dem sie gecached werden. Wenn dies nicht der Fall wäre, hätte diese Speicherebene wahrscheinlich die Speichertechnologien gewechselt, um die Leistung zu verbessern. Beide Faktoren führen dazu, dass Caches in der Regel relativ klein sind, insbesondere im Vergleich zu dem Speichermedium, von dem sie zwischengespeichert werden. RAM hat weniger Kapazität als Speicher und CPU-Cache hat weniger Kapazität als RAM. Der SLC-Cache hat weniger Kapazität als der TLC-Speicher.

All dies bedeutet, dass es oft notwendig ist, Daten aus dem Cache zu entfernen, um Speicherplatz für neue Daten freizugeben, die zwischengespeichert werden müssen. Dazu gibt es verschiedene Ansätze. „Am wenigsten verwendet“ bevorzugt es, Cache-Einträge zu entfernen, die die niedrigste Zugriffszahl haben. Dies kann nützlich sein, um vorherzusagen, welche Einträge die geringste Auswirkung auf zukünftige Cache-Fehlschläge haben werden, würde aber auch sehr kürzlich hinzugefügte Einträge als Einträge mit einer geringen Anzahl von Zugriffen zählen, was zu Cache-Churn führen kann.

„Zuletzt verwendet“ zieht es vor, Cache-Einträge zu entfernen, die seit einiger Zeit nicht mehr verwendet wurden. Dies setzt voraus, dass sie derzeit nicht verwendet werden, berücksichtigt jedoch nicht, ob sie vor einiger Zeit stark verwendet wurden. „Zuletzt verwendet“ zieht es vor, die zuletzt verwendeten Cache-Einträge zu entfernen, vorausgesetzt, dass sie verwendet wurden und nicht erneut verwendet werden müssen. Der beste Ansatz ist im Allgemeinen eine Kombination aus allen dreien, basierend auf Nutzungsstatistiken.

Veraltete Informationen und Sicherheitsrisiken

Das Hauptrisiko von Caches besteht darin, dass die darin enthaltenen Informationen veraltet sein können. Ein Cache-Eintrag wird als veraltet angesehen, wenn die ursprünglichen Daten aktualisiert wurden, wobei der Cache-Eintrag veraltet ist. Es ist wichtig, regelmäßig zu überprüfen, ob die bereitgestellte Live-Kopie immer noch mit der zwischengespeicherten Kopie übereinstimmt.

Insbesondere bei Websites ist es auch äußerst wichtig zu identifizieren, welche Daten zwischengespeichert werden können und welche nicht. Beispielsweise ist es vollkommen in Ordnung, wenn eine große, unveränderliche JavaScript-Datei zwischengespeichert wird. Dies erspart dem Benutzer, es jedes Mal herunterzuladen, und kann sogar anderen Benutzern zugute kommen, die von demselben Cache bedient werden. Sie können jedoch keine sitzungsspezifischen Daten zwischenspeichern. Stellen Sie sich vor, was passieren würde, wenn Sie zu einer Messaging-App navigieren würden, während Sie als Sie selbst angemeldet sind, nur um festzustellen, dass Sie eine zwischengespeicherte Version der Nachrichten eines anderen Benutzers erhalten. Glücklicherweise können Webserver angeben, welche Ressourcen zwischengespeichert werden können und welche nicht, und diese Probleme sind allgemein bekannt, sodass es nur wenige Probleme dieser Art gibt.

Abschluss

Ein Cache ist ein Teil des Speichers, der einige kürzlich verwendete Daten in einer Speichermethode speichern kann, auf die schneller zugegriffen werden kann, als es der Fall wäre, den normalen Datenzugriffsprozess erneut abzuschließen. Ein Cache ist in der Regel in seiner Kapazität begrenzt, was bedeutet, dass Einträge entfernt werden müssen, sobald er voll ist. Caches sind für den Benutzer im Allgemeinen transparent, was bedeutet, dass die Latenz der einzige Hinweis darauf ist, dass das Ergebnis über einen Cache bereitgestellt wurde.



Leave a Comment

So klonen Sie eine Festplatte

So klonen Sie eine Festplatte

Im modernen digitalen Zeitalter, in dem Daten ein wertvolles Gut sind, kann das Klonen einer Festplatte unter Windows für viele ein entscheidender Prozess sein. Dieser umfassende Leitfaden

Wie behebt man, dass der Treiber WUDFRd unter Windows 10 nicht geladen werden konnte?

Wie behebt man, dass der Treiber WUDFRd unter Windows 10 nicht geladen werden konnte?

Wird beim Booten Ihres Computers die Fehlermeldung angezeigt, dass der Treiber WUDFRd nicht auf Ihren Computer geladen werden konnte?

So beheben Sie den NVIDIA GeForce Experience-Fehlercode 0x0003

So beheben Sie den NVIDIA GeForce Experience-Fehlercode 0x0003

Tritt auf Ihrem Desktop der NVIDIA GeForce-Fehlercode 0x0003 auf? Wenn ja, lesen Sie den Blog, um herauszufinden, wie Sie diesen Fehler schnell und einfach beheben können.

Warum lässt sich mein Chromebook nicht einschalten?

Warum lässt sich mein Chromebook nicht einschalten?

Erhalten Sie Antworten auf die Frage: Warum lässt sich mein Chromebook nicht einschalten? In diesem hilfreichen Leitfaden für Chromebook-Benutzer.

So ändern Sie das Zifferblatt einer Fitbit Versa 4

So ändern Sie das Zifferblatt einer Fitbit Versa 4

Ändere das Zifferblatt deiner Fitbit Versa 4, um deiner Uhr jeden Tag kostenlos ein anderes Aussehen zu verleihen. Sehen Sie, wie schnell und einfach es geht.

Roomba stoppt, bleibt hängen und dreht sich um – Reparieren

Roomba stoppt, bleibt hängen und dreht sich um – Reparieren

Beheben Sie ein Problem, bei dem Ihr Roomba-Roboterstaubsauger anhält, hängenbleibt und sich ständig umdreht.

So ändern Sie die Grafikeinstellungen auf Steam Deck

So ändern Sie die Grafikeinstellungen auf Steam Deck

Das Steam Deck bietet ein robustes und vielseitiges Spielerlebnis direkt auf Knopfdruck. Allerdings, um Ihr Spiel zu optimieren und das bestmögliche zu gewährleisten

Was ist isolationsbasierte Sicherheit?

Was ist isolationsbasierte Sicherheit?

Wir werden uns mit einem Thema befassen, das in der Welt der Cybersicherheit immer wichtiger wird: Isolationsbasierte Sicherheit. Dieser Ansatz zu

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

Was ist SMPS?

Was ist SMPS?

Erfahren Sie, was SMPS ist und welche Bedeutung die verschiedenen Effizienzbewertungen haben, bevor Sie sich für ein SMPS für Ihren Computer entscheiden.