Hi Eddie,
ok, I will try to explain with more detail, maybe this is not how ducc
is being used normally. We want to set up some nodes which are not
exclusively used for ducc. For example, one of the nodes may have 100
GB, but we want the usable memory for ducc to only be 50 GB, not all
free memory. (We also want to limit the CPU usage, for example only
use 32 of 64 cores, but we have not tried to set this up yet.)
We could not find any setting to achieve this behavior, so we tried
using cgroups to limit the max usable memory for ducc. This did not
work because ducc gets its memory info from /proc/meminfo which
ignores the cgroups settings. After reading through the code it seems
only setting "ducc.agent.node.metrics.fake.memory.size" (not setting
up test mode) is doing something similar to what we want: "Comment
from NodeMemInfoCollector.java: if running ducc in simulation mode
skip memory adjustment. Report free memory = fakeMemorySize". But I am
not sure if we can use this safely since it is for testing.
So we basically want to give ducc an upper limit of usable memory.
I hope it is a bit more clear what we want to achieve.
Thanks again,
Daniel
Zitat von Eddie Epstein <[email protected]>:
Hi Daniel,
For each node Ducc sums RSS for all "system" user processes and excludes
that from Ducc usable memory on the node. System users are defined by a
ducc.properties setting with default value:
ducc.agent.node.metrics.sys.gid.max = 500
Ducc's simulation mode is intended for creating a scaled out cluster of
fake nodes for testing purposes.
The only mechanism available for reserving additional memory is to have
Ducc run some dummy process that stays up forever. This could be a Ducc
service that is automatically started when Ducc starts. This could get
complicated for a heterogeneous set of machines and/or Ducc classes.
Can you be more precise of what features you are looking for limiting
resource use of Ducc machines?
Thanks,
Eddie
On Mon, Oct 31, 2016 at 10:03 AM, Daniel Baumartz <
[email protected]> wrote:
Hi,
I am trying to set up nodes for Ducc that should not use all the memory on
the machine. I tried to limit the memory with cgroups, but it seems Ducc is
getting the memory info from /proc/meminfo which ignores the cgroups
settings.
Did I miss an option to specify the max usable memory? Could I safely use
"ducc.agent.node.metrics.fake.memory.size" from the simulation settings?
Or is there a better way to do this?
Thanks,
Daniel