Monitorear recursos
Recomendación General 💡
Asegúrese de reservar la cantidad de RAM y CPUs necesarios para la ejecución de su job. No reserve recursos que no necesita, ya que de hacerlo, perjudicará la ejecución de los demás usuarios del cluster.
A continuación, se muestran algunos ejemplos de como medir el uso de CPU y RAM de su job a fin de que pueda refinar la reserva de recursos. No olvide revisar la documentación sobre el envío de jobs a Slurm.
Jobs en ejecución
Si su job se encuentra en ejecución, usted puede revisar su uso actual de recursos. Sin embargo, deberá esperar hasta su finalización para ver el uso máximo de recursos durante toda su ejecución.
La manera más sencilla de revisar el uso instantáneo de recursos es hacer crear un job interactivo en el nodo de computación donde su job se encuentra ejecutándose. Para saber en que nodo debe crear el job interactivo, ejecute:
squeue --me
El cual nos da como salida:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
21615 standard bert-sar juan PD 0:00 1 n003
En ella podemos notar que su job bert-sar se encuentra ejecutandose en el nodo n003
de la parición standard
. Con esa información crearemos el job interactivo.
srun --pty -t 02:00 --mem=8G -p standard --nodelist=n003 bash
Una vez dentro del nodo de cómputo, ejecutaremos ps
o htop
.
ps
le brindará la información instantánea del uso de recursos cada vez que ejecute el comando.[alan.turing@n004 ~]$ ps -u$USER -o %cpu,rss,args %CPU RSS COMMAND 0.0 2376 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py 0.0 2380 python triangle.py
El reporte de memoria de
ps
se muestra en KB, podemos notar que los procesos listados consumen alrededor de 2000 KB de RAM y que el uso de los CPUs es casi nulo.htop
se ejecuta de manera interactiva y muestra las estadísticas de uso en vivo. Puede presionar la teclau
, ingresar su nombre de usuario y luegoenter
para filtrar solo sus procesos. La información del uso de memoria, se encuentra en la columna RES. Para solicitar ayuda puede presionar?
y si desea salirq
.
Jobs finalizados
Slurm guarda las estadísticas de cada job, incluído cuanta memoria y CPU fue utilizada.
sacct
También se puede usar sacct
para obtener la información del job. Lamentablemente, el output por defecto de sacct
no es del todo entendible, por ello se recomienda procesar la salida de la siguiente manera.
[alan.turing@khipu ~]$ export SACCT_FORMAT="JobID%20,JobName,User,Partition,NodeList,Elapsed,State,ExitCode,MaxRSS,AllocTRES%32"
[alan.turing@khipu ~]$ sacct -j 21886
JobID JobName User Partition NodeList Elapsed State ExitCode MaxRSS AllocTRES
---------- ---------- --------- ---------- --------------- ---------- ---------- -------- ---------- --------------------------------
1063 simple_ex+ alan.tur+ debug n005 00:00:11 COMPLETED 0:0 billing=2,cpu=2,mem=200M,node=1
1063.batch batch n005 00:00:11 COMPLETED 0:0 cpu=2,mem=200M,node=1