[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [HTCondor-users] Help needed understanding cpu core usage with cgroups
- Date: Mon, 13 Apr 2015 14:23:36 -0500
- From: Greg Thain <gthain@xxxxxxxxxxx>
- Subject: Re: [HTCondor-users] Help needed understanding cpu core usage with cgroups
On 04/13/2015 01:37 PM, Roderick Johnstone wrote:
Yes, the "foreground (Owner)" are non-condor jobs that are not using
cgroups. Our situation is that we use condor to soak up spare cycles
on peoples desktops as well as using dedicated computer servers and
this was a test of the former situation where I was simulating the
workstation owner running their own code outside of condor.
So, just to double check I understand this, the cgroups is really
working to allocate the relative number of cpus between different
condor jobs running in different slots according to the request_cpus
criterion in the job submit file, regardless of the number of threads
running in each job.
Right. To put a finer point on it, the HTcondor cgroup code works to
share cpu resources, but only among processes within cgroups that have
agreed to share cpus, whether or not those cgroups are managed by HTcondor.
The actual number of cpus that a condor job might run on is not really
constrained by cgroups because non-condor (non-cgroups) jobs can
squeeze out the condor jobs and if there are no non-condor jobs, the
condor jobs can take over all available cpus.
Is that right?
Yes. The kernel gives us little control over other peoples' processes.
You could fix this by putting the foreground jobs into their own cgroup,
or running them as a condor job proper.
Thats not really an option for us in the general case.
You could also affinity-lock the foreground processes.
Also, I wonder if improving the job's nice-ness would help the
situation. The knob JOB_RENICE_INCREMENT defaults to 10 in some
versions of condor, you may want to set it to 0 if it isn't already, and
try launching the condor_master with a negative niceness.
-greg
-greg