slurm_tips
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| slurm_tips [2025/07/07 18:39] – created bbruzzo | slurm_tips [2026/02/18 15:04] (current) – bbruzzo | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Cheatsheet SLURM ====== | ====== Cheatsheet SLURM ====== | ||
| + | |||
| + | ===== Ver logs de SLURM desde login ===== | ||
| + | < | ||
| ==Actualizar partición== | ==Actualizar partición== | ||
| + | Con el siguiente comando se actualiza temporalmente el tiempo máximo que puede tener un job para ingresar a una partición pero **hasta que se reincie el slurmctld** donde vuelve a tomar el que esté definido en slurm.conf: | ||
| < | < | ||
| + | |||
| + | ===== Monitorear consumo de QOS ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | El output va a ser algo asi: | ||
| + | |||
| + | < | ||
| + | UsageRaw=56629.000000 | ||
| + | GrpJobs=N(1) GrpJobsAccrue=N(0) GrpSubmitJobs=N(1) GrpWall=N(59.72) | ||
| + | GrpTRES=cpu=N(64), | ||
| + | GrpTRESMins=cpu=944(943), | ||
| + | GrpTRESRunMins=cpu=N(64), | ||
| + | MaxWallPJ= | ||
| + | MaxTRESPJ= | ||
| + | MaxTRESPN= | ||
| + | MaxTRESMinsPJ= | ||
| + | MinPrioThresh= | ||
| + | MinTRESPJ= | ||
| + | PreemptMode=OFF | ||
| + | Priority=0 | ||
| + | Account Limits | ||
| + | cuentaprueba | ||
| + | MaxJobsPA=N(1) MaxJobsAccruePA=N(0) MaxSubmitJobsPA=N(1) | ||
| + | MaxTRESPA=cpu=N(64), | ||
| + | User Limits | ||
| + | utest(10054) | ||
| + | MaxJobsPU=N(1) MaxJobsAccruePU=N(0) MaxSubmitJobsPU=N(1) | ||
| + | MaxTRESPU=cpu=N(64), | ||
| + | | ||
| + | Ver la línea: | ||
| + | < | ||
| + | |||
| + | Donde 944 es la cantidad de horas disponibles y 943 es las utilizadas al momento. | ||
| + | |||
| + | ===== Cambiar de estado ===== | ||
| + | Drain: | ||
| + | < | ||
| + | scontrol update NodeName=cn0xx State=DRAIN Reason=" | ||
| + | </ | ||
| + | |||
| + | Undrain: | ||
| + | < | ||
| + | scontrol update NodeName=cn0xx State=DOWN Reason=" | ||
| + | scontrol update NodeName=cn0xx State=RESUME | ||
| + | </ | ||
| + | |||
| + | ===== Agregar usuario administrador ===== | ||
| + | < | ||
| + | sacctmgr modify user name=< | ||
| + | sacctmgr modify user name=< | ||
| + | </ | ||
| + | |||
| + | ===== Monitorear tiempo de espera y priority ===== | ||
| + | |||
| + | Si los usuarios se quejan de que su job tarda mucho en entrar, podemos | ||
| + | en primera instancia utilizar squeue con un poco más de información: | ||
| + | |||
| + | < | ||
| + | squeue -o "%.7i %.20V %.10a %.15u %.5t %.7C %.7Q %.R" | ||
| + | </ | ||
| + | |||
| + | Esto nos permite ver fecha de envío del job, y la priority del mismo, junto con el job size. | ||
| + | |||
| + | Si queremos ver en más detalle calcular el tiempo de espera de cada job: | ||
| + | |||
| + | < | ||
| + | sacct -Xa --starttime=0215 --parsable --endtime=now --format=JobID, | ||
| + | NR==1 { | ||
| + | # Print header with fixed widths | ||
| + | printf "%-15s %-20s %-20s %-10s %-10s %-10s %-10s %-12s %-10s\n", | ||
| + | next | ||
| + | } | ||
| + | $3 ~ /[0-9]/ { | ||
| + | s1 = $2; s2 = $3; | ||
| + | gsub(/ | ||
| + | gsub(/ | ||
| + | | ||
| + | # Calculate days | ||
| + | w_days = (mktime(s2) - mktime(s1)) / 86400; | ||
| + | |||
| + | # Print data rows with matching fixed widths | ||
| + | # %-15s = string, left-aligned, | ||
| + | # %-10.2f = float, 2 decimals, 10 chars wide | ||
| + | printf "%-15s %-20s %-20s %-10s %-10s %-10s %-10s %-12s %-10.2f\n", | ||
| + | }' | ||
| + | |||
| + | </ | ||
| + | |||
| + | Veremos que en la última columna está el tiempo que tardó el job en entrar a queue. | ||
| + | |||
| + | Ajustar la fecha de --starttime acordemente. | ||
| + | |||
| + | |||
| + | Para analizar usuarios por fairshare (peor fairshare) usar opción --reverse si se quiere ver al revez. | ||
| + | |||
| + | < | ||
| + | sshare -aU | awk ' | ||
| + | </ | ||
slurm_tips.1751913570.txt.gz · Last modified: by bbruzzo
