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





Reply via email to