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

Re: [HTCondor-users] Limiting memory used on the worker node with c-groups


When somethingÂin the universe goes wrong with HTCondor and CGroups, I feel a little twitch. When you say the processes are in the "deferred" state, do you mean they are in the "D" state according to ps? Or do you mean the actual literal "job deferral" options in "htcondor"?

"Job deferral allows the specification of the exact date and time at which a job is to begin executing"

From what you've written, I think you mean "jobs in the D state". Here's the low down on that:


A common reason for a job getting stuck in D is a bad / overloaded remote filesystem (NFS, etc.). Is that a possibility here?

FYI: even if you didn't understand my presentation, you made the type of choice I recommend. Use "soft" but lie a bit about how much RAM you have. It allows more jobs to match while still ensuring that CGroups can do its job.


On Fri, Apr 24, 2020 at 1:45 AM Jean-Michel Barbet <jean-michel.barbet@xxxxxxxxxxxxxxxxx> wrote:

Having had many times worker nodes hanging because of memory exhaustion,
I am trying to figure out how we can prevent this. I believe the memory
exhaustion is due to some kind of pathologic job using way more memory
than it should.

The first question would be : does it make sense to use
SYSTEM_PERIODIC_REMOVE in the config of a worker node (startd) or is it
working only on the scheduler (thus reacting with a certain delay) ?

Then, I tried differents settings of CGROUP_MEMORY_LIMIT_POLICY.

I understand that the default setting is : "none". In this case, in
"memory.limit_in_bytes" is set to the nodes detected memory divided by
the number of cores and "memory.soft_limit_in_bytes" is 0.

I tried setting CGROUP_MEMORY_LIMIT_POLICY to "soft". It seems to do its
job with jobs being remove with "Job has gone over memory limit of 6000
megabytes. Peak usage: 5926 megabytes." BUT: The result on the worker
nodes is a number of processes in "Deffered" status which gives a high
Unix load even if there is no CPU consumed. No new jobs are scheduled.
Looks like the jobs are not killed cleanly.

I am now trying with "hard". Let's see...

I have read this presentation :
... but I do not understand everything. Sorry.

This is HTCondor version 8.6.13. Also, please note that I have made
is so that the threshold is higher than the detected memory :

MEMORY = 1.5 * quantize( $(DETECTED_MEMORY), 1000 )

Thank you in advance.


Jean-michel BARBETÂ Â Â Â Â Â Â Â Â Â | Tel: +33 (0)2 51 85 84 86
Laboratoire SUBATECH Nantes France  | Fax: +33 (0)2 51 85 84 79
CNRS-IN2P3/Ecole des Mines/Universite | E-Mail: barbet@xxxxxxxxxxxxxxxxx
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting

The archives can be found at: