Guide SAS VIYA

Überwachung des CAS_CACHE_DISK: Ein Blick hinter die Kulissen des SAS Viya-Speichers

Admin 04/12/2025 15 views

SAS© Cloud Analytic Services (CAS) ist die In-Memory-Ausführungs-Engine der SAS© Viya-Plattform. Ihre Stärke liegt in der Fähigkeit, riesige Datenmengen direkt im RAM zu verarbeiten. Administratoren und Architekten stellen sich jedoch oft eine entscheidende Frage: Was passiert, wenn der Arbeitsspeicher voll ist oder die Tabellen zu groß werden?

Hier kommt der CAS_DISK_CACHE (oder Festplatten-Cache) ins Spiel.

Die Rolle des Festplatten-Caches

Der CAS_DISK_CACHE ist ein temporärer Speicherplatz auf der Festplatte der Knoten (Worker und Controller). CAS verwendet ihn für:

  1. Paging (Auslagern): Auslagern von Datenblöcken aus dem RAM auf die Festplatte, wenn der Speicher voll ist (Memory Mapping).

  2. Replikation: Speichern von Kopien von Datenblöcken zur Gewährleistung der Hochverfügbarkeit.

Wenn dieser Speicherplatz voll ist, führt dies zur sofortigen Beendigung der Verarbeitung oder sogar zum Absturz der CAS-Sitzung. Es ist daher entscheidend, den Status dieses Caches im gesamten Cluster abfragen zu können.

Note :
Analyse des Überwachungscodes
Der unten stehende CASL-Code (CAS Language) ermöglicht die Überprüfung des Cache-Status. So funktioniert er Schritt für Schritt:

1. Rechteerweiterung (accessControl.assumeRole)
Standardmäßig sieht ein normaler Benutzer nur, was seine eigene Sitzung betrifft. Um einen Überblick über die Infrastruktur (den physischen Zustand der Festplatten aller Knoten) zu erhalten, sind oft administrative Rechte erforderlich. Die Anweisung accessControl.assumeRole / adminRole="superuser"; versucht, den aktuellen Benutzer in die Rolle des "Superusers" zu wechseln. Dies ermöglicht die Anzeige der Metriken aller Knoten im Cluster, nicht nur die des Controllers.

2. Der Aktionsaufruf (builtins.getCacheInfo)
Dies ist das Herzstück des Skripts. Die Aktion getCacheInfo aus dem Aktionssatz builtins fragt das für den Cache konfigurierte zugrunde liegende Dateisystem ab. Sie liefert entscheidende Informationen:

Den Zugriffspfad (Path) auf dem Linux-Server.

Den gesamten verfügbaren Speicherplatz (Total Size).

Den aktuell freien Speicherplatz (Free Space).

3. Die Anzeige (print)
Das Ergebnis wird in einer Wörterbuchvariable (hier cache genannt) gespeichert und dann im Protokoll oder in der Ergebnisausgabe von SAS© Studio angezeigt. Dies ermöglicht die schnelle Erkennung, ob ein bestimmter Knoten von einer Sättigung ("Disk Full") bedroht ist.
1PROC CAS;
2 /* -------------------------------------------------------------------
3 OBJECTIF : Auditer l'espace disque du CAS_DISK_CACHE
4 PRÉREQUIS : Droits suffisants pour assumer le rôle de Superuser
5 ------------------------------------------------------------------- */
6 
7 /* 1. Tentative de passage en mode Superuser pour une visibilité globale */
8 /* Note : Si l'utilisateur n'a pas les droits, cette étape peut échouer ou être ignorée */
9 ACCESSCONTROL.assumeRole / adminRole="superuser";
10 
11 put "--- ÉTAT DU CAS_CACHE_DISK (Cache Disque) ---";
12
13 /* 2. Récupération des métriques de cache pour chaque nœud du cluster */
14 BUILTINS.getCacheInfo RESULT=cache;
15
16 /* 3. Affichage structuré des résultats */
17 /* Les colonnes typiques sont : Node Name, Path, Free Space, Total Size */
18 PRINT cache;
19RUN;