A) DIAGNOSTIQUER :

Diagnostiquer un job lent

Diagnostic

Commandes

CPU saturé ? seff JOBID
Mémoire insuffisante ? sacct -j JOBID – -format=MaxRSS
I/O lent ? vmstat 5
Mauvaise partition ? scontrol show job JOBID
Mauvais nombre de cores ? sacct -j JOBID –format=Elapsed,CPUTime

Précisions sur les résultats affichés avec la commande “vmstat 5” :

Colonne Signification Commentaires
r processus en attente CPU élevé = CPU saturé
free mémoire libre proche 0 = pression mémoire
si/so swap in/out > 0 = swap actif (mauvais)
wa I/O wait élevé = disque saturé
us CPU user charge calcul
sy CPU system charge noyau
i CPU idle CPU libre

 


Job bloqué en queue

squeue -j JOBID -o "%.18i %.10P %.8T %.10M %.9l %.6D %R"

“-o” permet de personnaliser l’affichage

Champ Signification Description
%.18i JobID Identifiant du job
%.10P Partition Partition utilisée
%.8T State État du job (RUNNING, PENDING, etc.)
%.10M Time used Temps écoulé depuis le démarrage
%.9l Time limit Temps maximum autorisé
%.6D Nodes Nombre de nœuds alloués
%R Reason / Node list Nœud utilisé (si RUNNING) ou raison d’attente (si PENDING)

 

Faire des vérifications :

sprio -j JOBID  
scontrol show job JOBID 
scontrol show jobid ID 
sinfo
sinfo -s

A quels groupes, l’utilisateur $USER appartient :

groups $USER

Combien de cœurs sont utilisés sur un nœud avecsinfo -o "%n %e %m %a %c %C"

( voir pour plus de détail : https://slurm.schedmd.com/sinfo.html)

Pour savoir à quel account et à quelle QoS un utilisateur est associé :

sacctmgr show user name=$USER withassoc format=User%30,Account%30,DefaultAccount%30,maxwall,grptres,maxcpus,qos
Le nombre de CPU (maxcpus) peut être illimité pour l’account dédié. Dans ce cas, la colonne apparaît vide.

Problèmes fréquemment rencontrés :

  • partition pleine

  • priorité faible

  • dépendances du job

  • demande de mémoire trop élevée

  • Job qui crash :

 

Problème

Commandes pour vérifier

Out of Memory sacct -j JOBID –format=MaxRSS,ReqMem
Timeout sacct -j JOBID –format=Elapsed,Timelimit
Segfault tail slurm-*.out
Module incorrect module list

 

MaxRSS = Maximum Resident Set Size (quantité maximale de mémoire RAM réellement utilisée par le job)

ReqMem = Requested Memory (quantité de mémoire demandée dans le script SLURM)

 

B) FAIRE DES STATISTIQUES

Exemple d’une commande pour connaître l’utilisation des ressources par utilisateur en fonction de votre partition your_partition (remplacer par le bon nom de partition) depuis le 01/02/2026 :

 sreport user TopUsage accounts=dedicated-cpu@your_partition Group Start="2026-02-01"

Pour analyser l’utilisation mémoire d’un job en cours :

sstat -j JOBID

Pour afficher CPU et mémoire utilisée :

sstat -j 123456 --format=JobID,AveCPU,MaxRSS

Pour analyser les ressources utilisées après exécution :

sacct -j JOBID

Liste des 10 utilisateurs les plus importants :

sreport user top
Pour lister la mémoire demandée par tous les utilisateurs :
squeue -o "%.10u %.18i %.10g %.5C %.35a %.30m"
Pour lister seulement les membres d’un groupe :
squeue -o "%.10u %.18i %.10g %.5C %.35a %.30m" | grep nom_du_groupe
Pour voir le nombre de CPU (cœurs) par nœud :
sinfo -n nom_du_noeud --format="%n %.15C"
Pour afficher/monitorer le nombre de coeurs effectivement loués par un groupe :
sacctmgr list account --associations format=account%30,grptres%35,defaultqos%30,User%30 | grep dedicated-cpu@nom_account | head -n 1
Pour monitorer la charge d’utilisation de CPUs d’un groupe donné à l’instant t (comment donc savoir combien je peux encore en utiliser) ?
squeue -o "%.10u %.18i %.10g %.5C %.35a %.30m" | grep nom_du_groupe
Pour connaître le nombre d’heures de calcul encore disponibles pour un groupe :
slurm-quota stats --all | grep nom_du_groupe