Commandes de surveillance des jobs SLURM
1. Informations sur les partitions et les nœuds
- Affiche un résumé des partitions et des nœuds disponibles, y compris leur état (disponible, occupé, etc.):
sinfo
sinfo -Nel
scontrol show partition
2. Détails des ressources de GPU
- Permet de filtrer le détail des ressources de GPU :
sinfo -Ne -p gpu --format "%.15N %.4c %.7m %G"
3. Utilisation dans le temps
- Pour regarder l’utilisation dans le temps :
sreport cluster UserUtilizationByAccount user=$USER start=2024-12-01 -t hours
4. Historique des calculs
- Pour récupérer l'historique des calculs :
sacct -u $USER --format=JobID,JobName,partition,node,alloccpus,state,elapsed,maxrss,totalcpu,start,end -S 2024-12-01
5. Informations sur un job spécifique
- Pour un job en cours ou terminé :
sacct -j $JobID
- Afficher des informations détaillées sur un job spécifique en cours d'exécution ou en attente :
scontrol show job <job-id>
6. Suivi de la file d'attente des jobs
- Pour suivre la file d'attente des jobs en cours (PD: Pending, R: Running, ...):
Tous les utilisateurs :
squeue -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"
Ses propres jobs :
squeue -u $USER -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"
7. Création d'un alias dans .bashrc
- Pour créer un alias dans le fichier
.bashrc
:
alias squeue='squeue -o "%.8i %.9P %.8j %.5u %.5a %.5t %.16V %.16S %.16M %.16L %.16e %.2D %.4C %.13q %R %f"'
8. Analyse de l'efficacité des calculs
- Pour récupérer les JobID, utilisez la commande suivante (adaptez la date à vos besoins) :
sacct -u $USER --format=JobID,state --starttime=2025-01-01 --noheader | grep COMPLETED | egrep -v ".0|bat|ext" | awk '{print $1}' > job_$USER.out
- Pour analyser l'efficacité des calculs, une fois la liste des jobs récupérée dans
job_$USER.out
, exécutez la commande suivante :
for i in $(cat job_$USER.out); do seff $i; done | egrep "Job ID|CPU Efficiency|Memory Efficiency" > seff_$USER.out
Note : $USER est predefini, il correspond à votre identifiant eXplor.
Surveillance de l'utilisation des ressources (CPU et mémoire) dans les nœuds où le calcul est en cours
Pour utiliser ces commandes, connectez-vous d'abord au nœud où votre calcul est en cours en utilisant la commande suivante :
ssh <identifiant du nœud>
9. Surveillez l’utilisation du cluster et le statut des nœuds
- Pour surveiller le cluster, utilisez les commandes suivantes :
sinfo
,sinfo -Nel
,qstat -q
. - Afin d’adapter les ressources à allouer, utilisez des outils comme
top
,htop
ounvidia-smi
.
10. Commande pour rapporter l'utilisation du CPU
mpstat -P ALL
Exemple de sortie
[login@vm-projet ~]$ ssh cnh01
[login@cnh01 ~]$ mpstat -P ALL
Linux 3.10.0-327.el7.x86_64 (cnh01.prod.explor) 03/10/2025 _x86_64_ (8 CPU)
09:45:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
09:45:00 PM all 93.47 0.00 2.21 0.00 0.00 1.37 0.00 0.00 0.00 2.95
09:45:00 PM 0 88.91 0.00 3.31 0.00 0.00 2.71 0.00 0.00 0.00 5.07
09:45:00 PM 1 97.05 0.00 1.23 0.00 0.00 0.01 0.00 0.00 0.00 1.71
09:45:00 PM 2 89.50 0.00 3.24 0.00 0.00 2.99 0.00 0.00 0.00 4.27
09:45:00 PM 3 97.32 0.00 1.21 0.00 0.00 0.00 0.00 0.00 0.00 1.47
09:45:00 PM 4 90.01 0.00 3.24 0.00 0.00 2.51 0.00 0.00 0.00 4.23
09:45:00 PM 5 97.46 0.00 1.15 0.00 0.00 0.00 0.00 0.00 0.00 1.38
09:45:00 PM 6 90.03 0.00 3.10 0.00 0.00 2.75 0.00 0.00 0.00 4.12
09:45:00 PM 7 97.45 0.00 1.18 0.00 0.00 0.00 0.00 0.00 0.00 1.36
Lorsque vous exécutez mpstat -P ALL
, vous verrez généralement une sortie qui inclut les colonnes suivantes :
- **CPU** : Le numéro du CPU (ou "all" pour la moyenne sur tous les CPUs).
- **%usr** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau utilisateur (application).
- **%nice** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau utilisateur avec une priorité "nice".
- **%sys** : Pourcentage d'utilisation du CPU qui s'est produit lors de l'exécution au niveau système (noyau).
- **%iowait** : Pourcentage de temps que le CPU ou les CPUs étaient inactifs pendant que le système avait une requête d'E/S disque en attente.
- **%irq** : Pourcentage de temps passé par le CPU à traiter les interruptions matérielles.
- **%soft** : Pourcentage de temps passé par le CPU à traiter les interruptions logicielles.
- **%steal** : Pourcentage de temps que le CPU virtuel attend le CPU réel pendant que l'hyperviseur sert un autre processeur virtuel.
- **%guest** : Pourcentage de temps passé à exécuter un CPU virtuel pour des systèmes d'exploitation invités.
- **%gnice** : Pourcentage de temps passé à exécuter un invité avec une priorité "nice".
- **%idle** : Pourcentage de temps que le CPU était inactif et que le système n'avait pas de requête d'E/S disque en attente.
Rappel
Vous avez accès au nœud uniquement lorsque vous avez un calcul en cours.