diff --git a/NEWS b/NEWS index 2021a23501e..b799c19f3bf 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,21 @@ systemd System and Service Manager +CHANGES WITH 238 in spe: + + * The MemoryAccounting= unit property now defaults to on. After + discussions with the upstream control group maintainers we learnt + that the negative impact of cgroup memory accounting on current + kernels is finally relatively minimal, so that it should be safe to + enable this by default without affecting system performance too + much. Besides memory accounting only tasks accounting is turned on by + default, all other forms of resource accounting (CPU, IO, IP) remain + off for now, because it's not clear yet that their impact is small + enough to move from opt-in to opt-out for them, too. We recommend + downstreams to leave memory accounting on by default, however in some + situations it might be wise to revert this change of defaults, in + particular on very resource constrained systems or when support for + old kernels is a necessity. + CHANGES WITH 237: * Some keyboards come with a zoom see-saw or rocker which until now got diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml index 08f6c91901c..d875a3c46fc 100644 --- a/man/systemd-system.conf.xml +++ b/man/systemd-system.conf.xml @@ -338,8 +338,8 @@ CPUAccounting=, BlockIOAccounting=, MemoryAccounting=, TasksAccounting= and IPAccounting=. See systemd.resource-control5 - for details on the per-unit settings. DefaultTasksAccounting= defaults to on, the other - four settings to off. + for details on the per-unit settings. DefaultTasksAccounting= and + DefaultMemoryAccounting= default to on, the other three settings to off. diff --git a/src/core/main.c b/src/core/main.c index 56200a8fad3..f518656af33 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -135,7 +135,7 @@ static bool arg_default_cpu_accounting = false; static bool arg_default_io_accounting = false; static bool arg_default_ip_accounting = false; static bool arg_default_blockio_accounting = false; -static bool arg_default_memory_accounting = false; +static bool arg_default_memory_accounting = true; static bool arg_default_tasks_accounting = true; static uint64_t arg_default_tasks_max = UINT64_MAX; static sd_id128_t arg_machine_id = {}; diff --git a/src/core/manager.c b/src/core/manager.c index 5021e00b870..27b041c6d27 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -673,6 +673,7 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) { m->unit_file_scope = scope; m->exit_code = _MANAGER_EXIT_CODE_INVALID; m->default_timer_accuracy_usec = USEC_PER_MINUTE; + m->default_memory_accounting = true; m->default_tasks_accounting = true; m->default_tasks_max = UINT64_MAX; m->default_timeout_start_usec = DEFAULT_TIMEOUT_USEC; diff --git a/src/core/system.conf b/src/core/system.conf index 6b86eac33db..51a6e83ecf1 100644 --- a/src/core/system.conf +++ b/src/core/system.conf @@ -42,7 +42,7 @@ #DefaultIOAccounting=no #DefaultIPAccounting=no #DefaultBlockIOAccounting=no -#DefaultMemoryAccounting=no +#DefaultMemoryAccounting=yes #DefaultTasksAccounting=yes #DefaultTasksMax=15% #DefaultLimitCPU=