Guide SAS VIYA

Surveiller le CAS_CACHE_DISK : Les dessous de la mémoire SAS Viya

Admin 30 views
Niveau de difficulté
Confirmé
Published on :
Michael

Expert Advice

Michael

Ne vous contentez pas d'exécuter ce code quand le système ralentit. Intégrez l'action getCacheInfo dans un job de monitoring programmé (via SAS Job Execution ou un cron externe).

Si vous observez que le cache se remplit trop vite malgré une RAM importante, vérifiez votre paramètre COPIES. Passer de COPIES=1 à COPIES=0 pour vos tables de travail divisera par deux l'empreinte disque de ces tables sur votre cache !

SAS© Cloud Analytic Services (CAS) est le moteur d'exécution en mémoire de la plateforme SAS© Viya. Sa puissance réside dans sa capacité à traiter des volumes massifs de données directement en RAM. Cependant, une question critique se pose souvent aux administrateurs et architectes : que se passe-t-il lorsque la mémoire vive est saturée ou que les tables sont trop volumineuses ?

C'est ici qu'intervient le CAS_DISK_CACHE (ou Cache Disque).

Le Rôle du Cache Disque

Le CAS_DISK_CACHE est un espace de stockage temporaire sur le disque dur des nœuds (workers et controller). CAS l'utilise pour :

  1. Le "Paging" : Décharger des blocs de données de la RAM vers le disque lorsque la mémoire est pleine (memory mapping).

  2. La Réplication : Stocker des copies de blocs de données pour la haute disponibilité.

Si cet espace disque sature, c'est l'arrêt immédiat des traitements, voire le crash de la session CAS. Il est donc vital de pouvoir interroger l'état de ce cache sur l'ensemble du cluster.

Note :
Analyse du Code de Monitoring
Le code CASL (CAS Language) ci-dessous permet d'auditer l'état de ce cache. Voici comment il fonctionne, étape par étape :

1. L'élévation de privilèges (accessControl.assumeRole)
Par défaut, un utilisateur standard ne voit que ce qui concerne sa propre session. Pour obtenir une vue d'ensemble de l'infrastructure (l'état physique des disques de tous les nœuds), il est souvent nécessaire d'avoir des droits d'administration. L'instruction accessControl.assumeRole / adminRole="superuser"; tente de basculer l'utilisateur courant vers le rôle de "Superuser". Cela permet de voir les métriques de tous les nœuds du cluster, pas seulement celle du contrôleur.

2. L'appel à l'action (builtins.getCacheInfo)
C'est le cœur du script. L'action getCacheInfo de l'ensemble d'actions builtins interroge le système de fichiers sous-jacent configuré pour le cache. Elle retourne des informations cruciales :

Le chemin d'accès (Path) sur le serveur Linux.

L'espace total disponible (Total Size).

L'espace libre actuel (Free Space).

3. L'affichage (print)
Le résultat est stocké dans une variable dictionnaire (ici nommée cache) puis affiché dans la log ou la sortie de résultat SAS© Studio. Cela permet d'identifier rapidement si un nœud spécifique est en danger de saturation ("Disk Full").
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;