Surveiller le CAS_CACHE_DISK : Les dessous de la mémoire SAS Viya
Admin 30 vues
Niveau de difficulté
Confirmé
Publié le :
Le conseil de l'expert
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;
Avertissement important
Les codes et exemples fournis sur WeAreCAS.eu sont à but pédagogique. Il est impératif de ne pas les copier-coller aveuglément sur vos environnements de production. La meilleure approche consiste à comprendre la logique avant de l'appliquer. Nous vous recommandons vivement de tester ces scripts dans un environnement de test (Sandbox/Dev). WeAreCAS décline toute responsabilité quant aux éventuels impacts ou pertes de données sur vos systèmes.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.