Pour observer de plus près le comportement d’un job, on peut utiliser les commandes sstat
, ssacct
, scontrol
et même squeue
.
Extrait du man
L’aide des commandes précise :
squeue
: afficher les informations sur les jobs dans la file d’attentesstat
: afficher le status des jobssacct
: afficher les logs des jobsscontrol
: afficher/modifier des jobs, noeuds, partitions, réservations, configuration globale
Pour annuler un job :
scancel
: annuler un job
Statut des jobs et de la nodelist
La commande squeue
affiche les informations des jobs dans la file d’attente sous forme de plusieurs colonnes dont ST
et NODELIST(REASON)
. La colonne ST
indique le statut du job et NODELIST(REASON)
donne plus d’informations sur la raison pour laquelle le job n’a pas démarré.
Statut des jobs
Les jobs passent généralement par plusieurs statuts au cours de leur exécution. Les statuts typiques sont PENDING, RUNNING, SUSPENDED, COMPLETING et COMPLETED :
PD
: PENDING (en attente d’allocation de ressources)S
: SUSPENDED (exécution suspendue car ressources libérés pour d’autres jobs.)R
: RUNNING (le job est alloué)CD
: COMPLETED (tous les processus sont terminés avec comme code de sortie zéro)CG
: COMPLETING (certains processus peuvent encore être actifs)F
: FAILED (code de sortie non nul ou autres échecs)
Les autres status se trouvent également dans le MAN de squeue
ou ici : http://n0tes.fr/2022/12/03/SLURM-Statut-des-jobs
Statut de la colonne nodelist
La colonne NODELIST(REASON) peut avoir les principaux statuts suivant :
JobHeldUser
: le job est bloqué par l’utilisateurPriority
: des jobs de priorité supérieure existentResources
: en attente que les ressources soient disponiblesBeginTime
: heure de lancement pas encore atteinteDependency
: en attente de fin d’un job dépendant
Les autres status se trouvent également dans le MAN de squeue
ou ici : http://n0tes.fr/2022/12/03/SLURM-Statut-des-jobs
Vérification des jobs
Commande squeue
La commande squeue
liste les jobs en cours d’exécution, en attente ou terminés. Elle peut également afficher un job précis ou appartenant à un utilisateur.
# squeue |
Il est possible de vérifier les jobs d’un seul utilisateur :
# squeue -u emmetbrown |
Ou de spécifier les colonnes à afficher ainsi que leur largeur avec l’option -o
suivis de la taille comprise entre 0 et 1.
# squeue -j 16874 -o "%.18i %.9P %.8j %.8u %.8T %.10M %.9l %.6D %R %m" |
Les valeurs par défaut sont :
- default :
%.18i %.9P %.8j %.8u %.2t %.10M %.6D %R
-l
,--long
:%.18i %.9P %.8j %.8u %.8T %.10M %.9l %.6D %R
-s
,--steps
:%.15i %.8j %.9P %.8u %.9M %N
Les autres options se trouvent dans le manuel : https://manpages.org/squeue
Commande sstat
La commande sstat
afficher diverses informations sur le job. Exécutez la commande sacct pour vérifier les informations comptables des jobs et des étapes de job dans le journal ou la base de données Slurm.
# sstat -j 23221 -o JobID,NodeList,Pids,MaxRSS,AveRSS,MaxVMSize |
Commande sacct
La commande sacct
affiche les données des jobs des logs de la base de données SLURM :
# sacct -j 6589 --format JobID,jobname,NTasks,nodelist,MaxRSS,MaxVMSize,AveRSS,AveVMSize |
Il est possible d’afficher les jobs pour un utilisateur en particulier :
# sacct --user martymcfly --format JobID,jobname,NTasks,nodelist |
Il existe une option –-helpformat
pour vérifier quelles colonnes de sortie sont disponibles.
Commande scontrol
La commande scontrol est une commande indispensable pour la gestion de SLURM, elle permet d’e configurer a’fficher/modifier les noeuds, partitions, réservations, configuration globale et donne une vue très détaillée des jobs :
# scontrol show job 10046 |
Voir d’autres exemples : https://www.tigrillolinux.net/index.php/Scontrol_show_jobid_Examples
Annuler des jobs
Avec scancel
Envoyer SIGTERM aux étapes 1 et 3 du job 6660 :
# scancel --signal=TERM 6660.1 6660.3 |
Annuler le job 6660 ainsi que toutes ses étapes :
# scancel 6660 |
Envoyer SIGKILL à toutes les étapes du job 4440 sans annulez le job en lui-même :
# scancel --signal=KILL 4440 |
Envoyer SIGUSR1 aux processus shell batch du job 12333036 :
# scancel --signal=USR1 --batch 3330 |
Annuler tous les jobs en attente appartenant à bifftannen dans la partition debug:
# scancel --state=PENNDING --user=bifftannen --partition=debug |
Annuler uniquement l’ID n°4 du tableau d’un job array ayant pour ID 6660 :
# scancel 6660_4 |
Avec skill
Il est également possible de faire appel à skill :
# skill <JOB_ID> |
Documentation
https://sites.google.com/nyu.edu/nyu-hpc/training-support/general-hpc-topics/slurm-main-commands#h.v4c3l2r4728e
https://hpc.nmsu.edu/discovery/slurm/job-management/
https://manpages.org/sacct
https://manpages.org/sstat
https://manpages.org/squeue
https://manpages.org/scancel
https://slurm.schedmd.com/scontrol.html
https://www.tigrillolinux.net/index.php/Scontrol_Examples
https://www.tigrillolinux.net/index.php/Scontrol_show_jobid_Examples
https://hpc.nmsu.edu/discovery/slurm/slurm-commands/