[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] Question about VirtualMemory



Hi All,

Any clues on this? It sounds like a bug since the behavior (setting memory.memsw.limit_in_bytes with cgroup) is inconsistent between partitionable and non-partitionable slot types. For us, ideally the slot should be a partitoionable slot with some preassigned physical memory and swap space, and the job running there should receive the same swap space percentage according to the physical memory it requests. However, "PROPORTIONAL_SWAP_ASSIGNMENT=true" doesn't work, and in my test, the memory.memsw.limit_in_bytes was always set to total virtual memory of the whole node when the slot type is partitionable as I described in my previous email.

By the way, I tested setting VirtualMemory with SUBMIT_EXPRS as:

SUBMIT_EXPRS = $(SUBMIT_EXPRS) VirtualMemory
VirtualMemory = RequestMemory

it did not work either and it seems that HTCondor just ignores VirtualMemory in job JDL.

Thanks,

Di Qing

On 03/02/17 03:07 PM, Di Qing wrote:
Hi All,

I am trying to find a way to limit the memory usage of the jobs and
avoid they use too much swap space. I am testing HTCondor 8.4.11 with
CGroup under SL6. The node has been partitioned to two static slots with
different memory and CPU assignment. Each static slot can be further
partitioned into smaller dynamic slots according to the CPU and memory
requests of jobs.

In my test, with hard limit of CGroup, when configuring the slot
partitionable, when job running, the memory.limit_in_bytes is set to the
memory requested by the job and memory.memsw.limit_in_bytes is set to
the total virtual memory of the node, i.e., physical memory plus swap
space, although I configured its swap space to some percentages or set
PROPORTIONAL_SWAP_ASSIGNMENT to true. If I configured the slot is not
partitionable, the memory.limit_in_bytes of job is set to the assigned
physical memory of
slot and memory.memsw.limit_in_bytes is set to the virtual memory of the
slot.

With soft limit of CGroup,  both memory.limit_in_bytes and
memory.memsw.limit_in_bytes set to the total virtual memory of the node
(not the slot) when configuring the slot partitionable. Also the
memory.soft_limit_in_bytes is set to the memory requested by job. When
the slot is not partitionable, both memory.limit_in_bytes and
memory.memsw.limit_in_bytes set to the virtual
memory assigned to the slot, and memory.soft_limit_in_bytes is set to the
physical memory of slots.

My question is why HTCondor always sets the  memory.memsw.limit_in_bytes
to the total virtual memory of the node not the slot when the slot is
configured partitionable? We don't want to completely disable the swap
device since OS or some light tasks can still use some swap space.

Thanks,

Di
_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users

The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/