Obtener la ocupación de cada nodo con Slurm
En un clúster Linux gestionado con Slurm, puedes usar el comando sinfo
con una combinación de opciones para obtener información sobre la ocupación de cada nodo. La ocupación se basa en CPUs asignadas frente a CPUs totales.
Comando:
sinfo -N -o "%n %c %C"
Explicación de las opciones:
%n
: Nombre del nodo.%c
: Número total de CPUs por nodo.%C
: Estado de las CPUs en el nodo, desglosado como:- CPUsAlloc: CPUs asignadas actualmente a trabajos.
- CPUsIdle: CPUs disponibles ociosa.
- CPUsOther: CPUs en otros estados (por ejemplo, reservadas).
Ejemplo de salida:
NODELIST CPUS CPUS(A/I/O/T)
node01 32 16/16/0/32
node02 64 60/4/0/64
node03 16 0/16/0/16
En este ejemplo:
- A: CPUs asignadas a trabajos (
CPUsAlloc
). - I: CPUs libres (
CPUsIdle
). - O: CPUs en otros estados (
CPUsOther
). - T: CPUs totales (
CPUsTotal
).
Formato personalizado para mayor legibilidad:
sinfo -N -o "Nodo: %n | CPUs totales: %c | CPUs (A/I/O/T): %C"
Salida más clara:
Nodo: node01 | CPUs totales: 32 | CPUs (A/I/O/T): 16/16/0/32
Nodo: node02 | CPUs totales: 64 | CPUs (A/I/O/T): 60/4/0/64
Nodo: node03 | CPUs totales: 16 | CPUs (A/I/O/T): 0/16/0/16
Filtrar nodos según su ocupación:
Nodos ocupados (al menos 1 CPU asignada):
sinfo -N -o "%n %c %C" | awk -F'/' '{if ($2 > 0) print $0}'
Nodos completamente libres:
sinfo -N -o "%n %c %C" | awk -F'/' '{if ($2 == $4) print $0}'