Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Cache-Verdrängung und Auslagerung  Dokument im Navigationsbaum lokalisieren

Über die Drucktaste Hauptspeicher des Cache Monitors können Sie sich Informationen über den aktuellen Speicherverbrauch anzeigen lassen.

Die folgenden Tabellen geben eine Übersicht über die einzelnen Angaben:

Tabelle Laufzeitobjekt

Angabe

Bedeutung

Maximale Cache-Größe

Standardmäßig: 200 MB

Aktuelle Cache-Größe

Summe der Größe aller Cache-Strukturelemente in KB (siehe Cache-Struktur, Spalte Bytes)

Aktuelle Swap-Größe

Größe des Hintergrundspeichers (Flatfile oder Cluster-Tabelle) in KB

Cache belegt

Verhältnis von Maximaler Cache-Größe zu Aktueller Cache-Größe in %

Aktuelle Einträge gesamt

Summe aus Aktuellen Cache-Einträgen und Aktuellen Swap-Einträgen

Aktuelle Cache-Einträge

Anzahl aller Cache-Einträge, d.h. aller Cache-Strukturelemente (siehe Cache-Struktur)

Aktuelle Swap-Einträge

Anzahl aller Einträge im Hintergrundspeicher

Tabelle Shared Memory

Angabe

Bedeutung

Puffer-Abfragezeit

Zeit des letzten Lesens der Pufferbelegung

Puffer belegt

Grad der Belegung des Cachespeichers in %. Dieser Wert entspricht dem Minimum aus freien Bytes und freien Verzeichniseinträgen. Wenn Sie sich diese limitierenden Größen genauer ansehen möchten, wählen Sie Diese Grafik wird im zugehörigen Text erklärt Puffer Monitor oder Diese Grafik wird im zugehörigen Text erklärt Puffer Übersicht (siehe OLAP-Cache-Monitor).

Pufferbelegung Cache

Angabe, welchen Anteil am benutzten Shared Buffer der Cache belegt

 

Für den Fall, dass die Kapazität des Caches (die maximale Cache-Größe) ausgeschöpft ist, aber weiter Daten in den Cache geschrieben werden sollen, gibt es verschiedene Lösungen:

      Daten werden aus dem Cache verdrängt (gelöscht), siehe Cachemodus Hauptspeicher-Cache ohne Swapping (1)

      Daten werden aus dem Cache in einen Hintergrundspeicher ausgelagert (Swap), siehe Cachemodus Hauptspeicher-Cache mit Swapping (2)

Im folgenden wird das Grundprinzip der beiden Verfahren erläutert und anhand von Zustandsdiagrammen veranschaulicht:

Prinzip: Caching mit Verdrängung (Hauptspeicher-Cache ohne Swapping)

Wenn Daten in den Cache geschrieben werden, befindet sich der Eintrag im Zustand NEW. (Erneutes Schreiben erhält diesen Zustand.)

Wenn die Daten aus dem Cache gelesen werden, befindet sich der Eintrag im Zustand READ. (Erneutes Lesen und Schreiben erhält diesen Zustand.)

Sobald die Kapazität des Cache-Speichers ausgeschöpft ist, beginnt der Ersetzungsmechanismus LRU, die Einträge auf ihren Zustand hin zu prüfen, um den am längsten nicht gelesenen Eintrag aus dem Cache zu entfernen:

-         Wenn der LRU-Algorithmus auf einen Eintrag im Zustand READ trifft, setzt er ihn auf NEW zurück.

-         Wenn der LRU-Algorithmus auf einen Eintrag im Zustand NEW trifft, veranlasst er, dass dieser Eintrag mit den neuen Daten überschrieben wird. Falls im folgenden nochmals auf die überschriebenen Daten zugegriffen werden soll, müssen diese Daten erneut von der Datenbank gelesen werden (Cache-Miss).

Diese Grafik wird im zugehörigen Text erklärt

Prinzip: Caching mit Auslagern in einen Hintergrundspeicher (Swap) (Hauptspeicher-Cache mit Swapping)

Wenn Daten in den Cache geschrieben werden, befindet sich der Eintrag im Zustand WRITE. (Erneutes Schreiben erhält diesen Zustand.)

Wenn die Daten aus dem Cache gelesen werden, befindet sich der Eintrag im Zustand READ WRITE. (Erneutes Lesen und Schreiben erhält diesen Zustand.)

Sobald die Kapazität des Cache-Speichers ausgeschöpft ist, beginnt der Ersetzungsmechanismus LRU, die Einträge auf ihren Zustand hin zu prüfen, um den am längsten nicht gelesenen Eintrag aus dem Cache zu entfernen:

-         Wenn der LRU-Algorithmus auf einen Eintrag im Zustand READ WRITE trifft, setzt er ihn auf READ DIRTY zurück. (Erneutes Lesen erhält diesen Zustand. Erneutes Schreiben führt den Eintrag in den Zustand READ WRITE zurück.) Das DIRTY-Flag dient sozusagen als „Merker“, dass dieser Eintrag persistiert werden muss.

-         Wenn der LRU-Algorithmus auf einen Eintrag im Zustand READ DIRTY trifft, setzt er ihn auf DIRTY zurück. Ebenso verfährt der LRU-Algorithmus mit Einträgen im Zustand WRITE, die nicht gelesen werden. (Erneutes Lesen führt den Eintrag in den Zustand READ DIRTY zurück, erneutes Schreiben in den Zustand WRITE.)

-         Wenn der LRU-Algorithmus auf einen Eintrag im Zustand DIRTY trifft, veranlasst er, dass dieser Eintrag in den Hintergrundspeicher ausgelagert und als SWAPPED gekennzeichnet wird. Falls im folgenden nochmals auf diese Daten zugegriffen werden soll, können die Daten aus dem Hintergrundspeicher gelesen werden. Gleichzeitig wird ein neuer Cache-Eintrag mit dem Zustand WRITE angelegt.

Nach höchstens zwei „Durchläufen“ hat der LRU-Algorithmus durch das Zurücksetzen der Flags einen Eintrag gefunden, der überschrieben werden kann.

Diese Grafik wird im zugehörigen Text erklärt

Weitere Empfehlungen

Da Einträge im Cache nur durch Verdrängung automatisch gelöscht werden, d.h. einmal erzeugte Einträge in allen Cachemodi außer Hauptspeicher-Cache ohne Swapping im Grunde 'unendlich' lange bestehen bleiben, auch wenn sie längst nicht mehr verwendet werden, empfehlen wir, regelmäßig das Programm RSR_CACHE_RSRV_CHECK_ENTRIES in der Hintergrundverarbeitung einzuplanen (z.B. einmal wöchentlich nachts). Das Programm identifiziert und löscht solche veralteten Einträge. Damit sparen Sie Speicherplatz und verbessern die Cache-Performace, weil das System dann die veralteten Einträge nicht mehr bei jedem Cache-Zugriff mit durchsuchen muss.

 

Ende des Inhaltsbereichs