I'm confused.
I have a couple of users who underestimate the memory their jobs
would attempt to allocate, and as a result some worker nodes end
up swapping heavily.
I tried to get those jobs preempted, and sent back into the queue
with their updated (ImageSize) request_memory:
# Let job use its declared amount of memory and some more
MEMORY_EXTRA = 2048
MEMORY_ALLOWED = (Memory + $(MEMORY_EXTRA)*Cpus)
# Get the current footprint
MEMORY_CURRENT = (ImageSize/1024)
# Exceeds expectations?
MEMORY_EXCEEDED = $(MEMORY_CURRENT) > $(MEMORY_ALLOWED)
# If exceeding, preempt
#[preset]PREEMPT = False
PREEMPT = ($(PREEMPT)) || ($(MEMORY_EXCEEDED))
WANT_SUSPEND = False