Changes between Initial Version and Version 1 of accounting_slurm


Ignore:
Timestamp:
May 8, 2023, 12:07:17 PM (2 years ago)
Author:
tonin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • accounting_slurm

    v1 v1  
     1== Accounting e informes de slurm ==
     2Slurm consta de un sistema de accounting y reporting que permite a los administradores y a los usuarios tener información restropectiva sobre el uso que se ha hecho del sistema HPC.
     3
     4Es importante saber que slurm cuenta con dos entidades necesarias para estas actividades:
     5- '''Account''': Es la entidad propia de slurm que permite controlar el acceso y el uso a los recursos para un usuario o grupos de usuarios. Es interna de slurm y no tiene ninguna correspondencia con ningún directorio ni sistema de autenticación.
     6- '''User''': Es la entidad que mapea el usuario de slurm al usuario propio de linux correspondiente a la cuenta de usuario,  que estará definido en los servicios de directorio o de autenticación de linux.
     7
     8Para entenderlo prácticamente podriamos pensar en que {{{account}}} se corresponde con nuestro grupo de investigación y que {{{user}}} es el usuario que cada uno de los miembros del grupo tiene en el HPC.
     9
     10De esa forma un {{{account}}} puede tener varios usuarios, y también un usuario puede pertenecer a varios {{{account}}}. A la hora de contar los recursos del HPC empleados, podremos hacerlo por {{{account}}}, por {{{user}}} o por una combinación de ambos.
     11
     12Sobre los {{{account}}} y los {{{user}}} se pueden generar informes de uso. Pondremos aquí solo algunos ejemplos que pueden ser de interés desde el punto de vista del usuario.
     13
     14El comando para generar los informes es {{{sreport}}} y por defecto genera informes sobre lo sucedido en las últimas 24 horas. Si queremos especificar otro rango temporal debemos usar los argumentos {{{Start}}} y {{{End}}}, que admiten los siguientes formatos:
     15
     16{{{
     17              HH:MM[:SS] [AM|PM]
     18              MMDD[YY] o MM/DD[/YY] o MM.DD[.YY]
     19              MM/DD[/YY]-HH:MM[:SS]
     20              YYYY-MM-DD[THH:MM[:SS]]
     21}}}
     22
     23La información completa del comando {{{sreport}}} se encuentra [https://slurm.schedmd.com/sreport.html aquí]
     24=== Muestra los usuarios que más han consumido desde el 1 de enero de 2023 ===
     25{{{
     26(base) [root@admin01 logs]$ sreport user topuser start=2023-01-01
     27--------------------------------------------------------------------------------
     28Top 10 Users 2023-01-01T00:00:00 - 2023-05-07T23:59:59 (10969200 secs)
     29Usage reported in CPU Minutes
     30--------------------------------------------------------------------------------
     31  Cluster     Login     Proper Name         Account     Used   Energy
     32--------- --------- --------------- --------------- -------- --------
     33    linux     user1                              si    47072        0
     34    linux     user2                              si    11179        0
     35}}}
     36
     37Como se ve ambos usuarios corresponden al mismo account. {{{Used}}} nos indica el tiempo de cómputo usado por dichos usuarios.
     38
     39=== Muestra la distribución de trabajos en función del número de cpus ===
     40{{{
     41(base) [root@admin01 logs]$ sreport  job SizesByAccount start=2023-01-01 -t percent Format=account Grouping=5,9
     42--------------------------------------------------------------------------------
     43Job Sizes 2023-01-01T00:00:00 - 2023-05-07T23:59:59 (10969200 secs)
     44Time reported in Percentage of Total
     45--------------------------------------------------------------------------------
     46  Account      0-4 CPUs      5-8 CPUs     >= 9 CPUs % of cluster
     47--------- ------------- ------------- ------------- ------------
     48     root        27.25%        72.75%         0.00%      100.00%
     49}}}
     50Aquí vemos que el 27.25% han consumido menos de 5 cpus, y el resto entre 5 y 8. Cambiando los valores de Grouping podemos cambiar dichos umbrales.
     51
     52=== Ver la utilización del cluster ===
     53{{{
     54(base) [root@admin01 logs]$ sreport cluster utilization Start=2023-01-01
     55--------------------------------------------------------------------------------
     56Cluster Utilization 2023-01-01T00:00:00 - 2023-05-07T23:59:59
     57Usage reported in CPU Minutes
     58--------------------------------------------------------------------------------
     59  Cluster Allocate      Down PLND Dow       Idle Reserved   Reported
     60--------- -------- --------- -------- ---------- -------- ----------
     61    linux    58251   7135949        0   40486311    37291   47717802
     62}}}
     63
     64Este informe nos muestra el consumo en minutos en cada uno de los estados de nuestro cluster, los estados son:
     65- '''Allocate''': Los que han usado nuestros trabajos.
     66- '''Down''': Los que no se han podido usar porque determinados nodos estaban fuera de servicio o en mantenimiento.
     67- '''Idle''': Los minutos que estaban disponibles pero no se han usado.
     68- '''Reserved''': Los minutos que se han reservado para que determinado/s usuario/s ejecuten sus trabajos en un momento dado.
     69- '''Reported''': El total de minutos de nuestro sistema.
     70
     71== Muestra una lista de trabajos pasados ==
     72Con el comando {{{sacct}}} es posible mostrar una lista de trabajos pasados y otra información no tan sumarizada como hace el {{{sreport}}}. Aquí tenemos un ejemplo de las primeras filas del listado de los trabajos del cluster desde el 1 de Enero de 2023:
     73{{{
     74(base) [root@admin01 logs]$ sacct -S2023-01-01 | head
     75       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
     76------------ ---------- ---------- ---------- ---------- ---------- --------
     773003_1            hello     normal         si          1  COMPLETED      0:0
     783003_1.batch      batch                    si          1  COMPLETED      0:0
     793003_1.0         python                    si          1  COMPLETED      0:0
     803003_2            hello     normal         si          1  COMPLETED      0:0
     813003_2.batch      batch                    si          1  COMPLETED      0:0
     823003_2.0         python                    si          1  COMPLETED      0:0
     833003_3            hello     normal         si          1  COMPLETED      0:0
     843003_3.batch      batch                    si          1  COMPLETED      0:0
     85}}}
     86
     87Si quisiéramos ver por ejemplo las cpus usadas por el trabajo con id 5000, usariamos este comando:
     88{{{
     89(base) [tonin@admin01 logs]$ sacct --jobs 5000 --allocations
     90       JobID    JobName  Partition    Account  AllocCPUS      State ExitCode
     91------------ ---------- ---------- ---------- ---------- ---------- --------
     925000         BioHub_Ba+     normal         si          5  COMPLETED      0:0
     93}}}
     94
     95Hay muchas posibilidades usando los argumentos del comando {{{sacct}}} que están explicados [https://slurm.schedmd.com/sacct.html aquí]