SLURM - Erreur sur les noeuds

Problème rencontrés avec des noeuds sous gestions SLURM.

Etats possibles des noeuds

2022/10/01/SLURM-Status-des-noeuds/

Commandes de base

Vérifier l’état des noeuds

Affiche uniquement la raison des noeuds en down, drained and draining :

# sinfo -R

Pour des informations plus détaillées (non troquées) :

# sinfo -Nel

Affiche le détail d’un noeud en particulier :

# scontrol show nodes=<mynode>

Equivalent à (sans le “s” à node) :

# scontrol show node <mynode>

Affiche tous les noeuds en détail :

# scontrol show nodes

Régler les problèmes de noeuds

Fichier de configuration

La commande scontrol show node <name> donne des incations sur la taille mémoire, espace disque, etc. il faut penser à comparer les informations avec la configuration du
fichier slurm.conf.

Noeud en Not responding”

Si vous avez ce message d’erreur :

error: Nodes node[00,03,25] not responding
Node node00 now responding

Vérifier que le noeud est joignable :

# ping <@IP_node>

Si le noeud est joignable, il est possible qu’il soit géré par un autre ordonnanceur que Slurm (SGE, XCat, etc.).
Si le problème persiste, voir : http://n0tes.fr/2022/08/15/SLURM-Down/

Noeud en DRAIN

Jobs en cours sur le noeud :

S’il y a des jobs en cours sur le noeud, on utilise resume :

# scontrol update NodeName=<my_node> State=DOWN Reason="undraining"
# scontrol update NodeName=<my_node> state=resume

Aucun job sur le noeud :

S’il n’y a PAS de job en cours sur le noeud, on utilise idle :

# scontrol update NodeName=<my_node> State=DOWN Reason="undraining"
# scontrol update NodeName=<my_node> state=idle

Si des jobs sont en cours, cette commande va les kill, donc utiliser l’option resume à la place.

Noeud Low RealMemory

Vérifier la RAM

Ce problème vient généralement d’un problème de RAM sur le noeud.

# scontrol show nodes=mynode
NodeName=mynode Arch=x86_64 CoresPerSocket=30
CPUAlloc=20 CPUTot=50 CPULoad=8.01
[...]
Reason=Low RealMemory [slurm@2022-12-05T10:20:00]

Et il faut s’assurer, en vous connectant sur le noeud que la RAM n’est pas défaillante, notament avec les commandes free -h -m, lshw -short -C memory ou encore
dmidecode --type 17. Ces commandes couplées à clush vous permetrons de comparer vos noeuds entre eux :

# clush -b -w mynode[22-42] free -h -m
# clush -b -w mynode[22-42] lshw -short -C memory
# clush -b -w mynode[22-42] dmidecode --type 17

Solution provisoire

En attendant de régler le problème matériel (s’il existe), vous pouvez toujours vérifier la configuration du noeud problématique dans /etc/slurm/slurm.conf :

[...]
NodeName=mynode[22-32] CPUs=40 RealMemory=257000 Sockets=2 CoresPerSocket=30 ThreadsPerCore=2 MemSpecLimit=2000 State=UNKNOWN Feature=brd,hdd,deb9
NodeName=mynode[33-42] CPUs=40 RealMemory=385000 Sockets=2 CoresPerSocket=30 ThreadsPerCore=2 MemSpecLimit=2000 State=UNKNOWN Feature=skl,hdd,deb9
[...]

On rajoute une ligne pour redéfinir la mémoire du noeud 42, en baissant la capacité de RealMemory :

[...]
NodeName=mynode[22-32] CPUs=40 RealMemory=257000 Sockets=2 CoresPerSocket=30 ThreadsPerCore=2 MemSpecLimit=2000 State=UNKNOWN Feature=brd,hdd,deb9
NodeName=mynode[33-41] CPUs=40 RealMemory=385000 Sockets=2 CoresPerSocket=30 ThreadsPerCore=2 MemSpecLimit=2000 State=UNKNOWN Feature=skl,hdd,deb9
NodeName=mynode42 CPUs=40 RealMemory=257000 Sockets=2 CoresPerSocket=30 ThreadsPerCore=2 MemSpecLimit=2000 State=UNKNOWN Feature=brd,hdd,deb9
[...]

Noeud en Prolog error

@todo

NodeName=MyNode42 Arch=x86_64 CoresPerSocket=30
CPUAlloc=10 CPUTot=50 CPULoad=8.01
[...]
Reason=Prolog error

Documentation

RTFM : SGE
RTFM : SLURM

> Partager <