Logs and AdminComment - KasperSkytte/slurmjobpacker GitHub Wiki

Logs and AdminComment

AdminComment

Set by sjp.place() (only if empty); see it with scontrol show job:

AdminComment=sjp:placed=slim1,slim2;job=4c,16G,4.0G/c;v=20
AdminComment=sjp:pin=node01;from=slim1,slim2;job=4c,16G,4.0G/c;free=60c,293G,4.9G/c;v=20
field
placed= partitions set
pin=, from= pinned node; partitions before pinning
job= CPUs, memory, memory per CPU (512 MB if none requested)
free= pinned node's free space at the time
v= placement table version
time=, busy= time_aware: job time limit; time left on the node's jobs
released= replaces pin= after an unstarted pin is removed
skipped= not placed, and why (no room, reservation, gpu, ...); replaced by placed= or pin= if a recheck takes it over
moved= slim1>fat1: partitions changed by the latest recheck
room=no no node had room: placed by shape (always_place)
eta= pinned to wait for room (wait_for_room): time until the node was expected to have it
qos= normal>flex: moved to the flex QOS (kept after moving back)

sjpd relies on these marks: it only releases its own pins, moves and widens jobs sjp placed (or skipped for want of room), and moves flex jobs back to the recorded QOS.

slurmctld log

One line per sjp.place() call:

sjp: uid=1000 name='wrap' -> slim1 (v20 b0,1,1 pin=node01)
sjp: uid=1000 name='big' -> not placed (no room)
sjp: uid=1000 name='big' -> slim1 (v20 b3,6,1 no room, by shape pin=node03 eta 2.0h)

v20: table version; b0,1,1: bucket (memory per CPU, CPUs, time limit); refit: partitions too small for the job were dropped. With sjp.config.verbose = true:

sjp: uid=1000 name='wrap' -> fat1,slim1 (v1 b2,2,1): job 4 CPUs x 8192 MB (2048 MB/CPU), 120 min; table fat1,slim1; no pin: several tasks without -N 1

sjpd

file
/var/log/sjp/sjp.log readable: jobs seen, actions (with command and reason), errors
/var/log/sjp/decisions.jsonl same as JSON: start, stop, preflight, placement, action, policy, limits, error
/run/sjp/status.json current idle share, pending and capped jobs, pulse state
python3 -m sjp.report /var/log/sjp/decisions.jsonl --summary
python3 -m sjp.report /var/log/sjp/decisions.jsonl --only different,excluded

Actions: write_policy_table, release_pin, move_partitions, pin_waiting, widen_partitions, set_qos_cpu_limits, flex_job, unflex_job; each says whether it ran or why not.