Cluster IO : diagnostiquer et faire des statistiques
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