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 <i>ID</i>
sinfo

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

exemple de résultat pour les nœuds gm-base (muse252-256)

HOSTNAMES FREE_MEM MEMORY AVAIL CPUS CPUS(A/I/O/T)
muse252 77083 128000 up 28 24/4/0/28
muse253 81384 128000 up 28 0/28/0/28
muse254 85681 128000 up 28 0/28/0/28
muse255 103567 128000 up 28 0/28/0/28
muse256 91002 128000 up 28 0/28/0/28

avec

HOSTNAMES tells you the nodes of the cluster, if you want submit to a specific node that is the one you can say you want to use.

FREE_MEM tells you how much memory that node has free in MB.

MEMORY tells you how much memory that node has by default, when it is unused, in MB.

AVAIL tells you if that node is up or not (if you are having issues).

CPUS tells you the total number of cpus on that node, assuming it is unused.

CPUS(A/I/O/T) tells you the number of allocated/idle/other/total cpus. Allocated cpus are the cores unavailable, and currently being used in jobs. Idle cpus are immediately available for use, other means they could be down or in some different mid-run state, and total just reiterates that total number of cpus.

(https://slurm.schedmd.com/sinfo.html)


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

Plus généralement pour obtenir des statistiques pour un job terminé :

sacct -j <jobid> --format=JobID,JobName,MaxRSS,Elapsed,AllocCPUS, NTasks, MinCPU, MinCPUTask, AveCPU, Elapse, ExitCode, MaxRSS,, MaxRSSTask, AveRSS,,MaxPages,MaxPagesTask,AvePages,MaxDiskRead,MaxDiskReadTask,AveDiskRead, MaxDiskWrite, MaxDiskWriteTask, AveDiskWrite

Exemple d’une commande pour connaître l’utilisation des ressources par utilisateur en fonction des groupes work_groupe1, etc. (remplacer par le bon nom de groupe) depuis le 01/02/2026 :

sreport user TopUsage accounts=admin,work_groupe1,work_groupe2,work_groupe3,work_groupe4 Group Start="2026-02-01"

 

Voir les utilisateurs d’une partition :

scontrol show PartitionName=nom_partition

 

Quelques autres commandes utiles :

job par taille et par account :

sreport job sizesbyaccount

utilisation globale du cluster :

sreport cluster utilization

Liste des 10 utilisateurs les plus importants :

sreport user top

Liste les utilisations par utilisateur du groupe nom_du_groupe :

sreport user topusage start=9/01/21 end=9/30/21 -t percent account=nom_du_groupe

Principaux utilisateurs sur la partition “nom_partition” et sur les “accounts” qui ont accès à la partition “nom_partition” :

Slurm_tools/slurmacct/slurmacct -s 0101 -e 1031 -p nom_partition