Surveiller le CAS_CACHE_DISK : Les dessous de la mémoire SAS Viya
Admin 30 views
Niveau de difficulté
Confirmé
Published on :
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 !
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 :
Le "Paging" : Décharger des blocs de données de la RAM vers le disque lorsque la mémoire est pleine (memory mapping).
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 :
proc cas;
/* -------------------------------------------------------------------
OBJECTIF : Auditer l'espace disque du CAS_DISK_CACHE
PRÉREQUIS : Droits suffisants pour assumer le rôle de Superuser
------------------------------------------------------------------- */
/* 1. Tentative de passage en mode Superuser pour une visibilité globale */
/* Note : Si l'utilisateur n'a pas les droits, cette étape peut échouer ou être ignorée */
accessControl.assumeRole / adminRole="superuser";
put "--- ÉTAT DU CAS_CACHE_DISK (Cache Disque) ---";
/* 2. Récupération des métriques de cache pour chaque nœud du cluster */
builtins.getCacheInfo result=cache;
/* 3. Affichage structuré des résultats */
/* Les colonnes typiques sont : Node Name, Path, Free Space, Total Size */
print cache;
run;
/* 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;
19
RUN;
Important Disclaimer
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.