From: Jakub Kicinski <kuba@kernel.org> To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, kernel-team@fb.com, tj@kernel.org, hannes@cmpxchg.org, chris@chrisdown.name, cgroups@vger.kernel.org, shakeelb@google.com, mhocko@kernel.org, Jakub Kicinski <kuba@kernel.org> Subject: [PATCH mm v5 0/4] memcg: Slow down swap allocation as the available space gets depleted Date: Wed, 20 May 2020 17:20:06 -0700 [thread overview] Message-ID: <20200521002010.3962544-1-kuba@kernel.org> (raw) Tejun describes the problem as follows: When swap runs out, there's an abrupt change in system behavior - the anonymous memory suddenly becomes unmanageable which readily breaks any sort of memory isolation and can bring down the whole system. To avoid that, oomd [1] monitors free swap space and triggers kills when it drops below the specific threshold (e.g. 15%). While this works, it's far from ideal: - Depending on IO performance and total swap size, a given headroom might not be enough or too much. - oomd has to monitor swap depletion in addition to the usual pressure metrics and it currently doesn't consider memory.swap.max. Solve this by adapting parts of the approach that memory.high uses - slow down allocation as the resource gets depleted turning the depletion behavior from abrupt cliff one to gradual degradation observable through memory pressure metric. [1] https://github.com/facebookincubator/oomd v4: https://lore.kernel.org/linux-mm/20200519171938.3569605-1-kuba@kernel.org/ v3: https://lore.kernel.org/linux-mm/20200515202027.3217470-1-kuba@kernel.org/ v2: https://lore.kernel.org/linux-mm/20200511225516.2431921-1-kuba@kernel.org/ v1: https://lore.kernel.org/linux-mm/20200417010617.927266-1-kuba@kernel.org/ Jakub Kicinski (4): mm: prepare for swap over-high accounting and penalty calculation mm: move penalty delay clamping out of calculate_high_delay() mm: move cgroup high memory limit setting into struct page_counter mm: automatically penalize tasks with high swap use Documentation/admin-guide/cgroup-v2.rst | 20 +++ include/linux/memcontrol.h | 4 +- include/linux/page_counter.h | 13 ++ mm/memcontrol.c | 173 +++++++++++++++++------- 4 files changed, 161 insertions(+), 49 deletions(-) -- 2.25.4
WARNING: multiple messages have this Message-ID (diff)
From: Jakub Kicinski <kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> To: akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org Cc: linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, kernel-team-b10kYP2dOMg@public.gmane.org, tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org, chris-6Bi1550iOqEnzZ6mRAm98g@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, mhocko-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Jakub Kicinski <kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Subject: [PATCH mm v5 0/4] memcg: Slow down swap allocation as the available space gets depleted Date: Wed, 20 May 2020 17:20:06 -0700 [thread overview] Message-ID: <20200521002010.3962544-1-kuba@kernel.org> (raw) Tejun describes the problem as follows: When swap runs out, there's an abrupt change in system behavior - the anonymous memory suddenly becomes unmanageable which readily breaks any sort of memory isolation and can bring down the whole system. To avoid that, oomd [1] monitors free swap space and triggers kills when it drops below the specific threshold (e.g. 15%). While this works, it's far from ideal: - Depending on IO performance and total swap size, a given headroom might not be enough or too much. - oomd has to monitor swap depletion in addition to the usual pressure metrics and it currently doesn't consider memory.swap.max. Solve this by adapting parts of the approach that memory.high uses - slow down allocation as the resource gets depleted turning the depletion behavior from abrupt cliff one to gradual degradation observable through memory pressure metric. [1] https://github.com/facebookincubator/oomd v4: https://lore.kernel.org/linux-mm/20200519171938.3569605-1-kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org/ v3: https://lore.kernel.org/linux-mm/20200515202027.3217470-1-kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org/ v2: https://lore.kernel.org/linux-mm/20200511225516.2431921-1-kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org/ v1: https://lore.kernel.org/linux-mm/20200417010617.927266-1-kuba-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org/ Jakub Kicinski (4): mm: prepare for swap over-high accounting and penalty calculation mm: move penalty delay clamping out of calculate_high_delay() mm: move cgroup high memory limit setting into struct page_counter mm: automatically penalize tasks with high swap use Documentation/admin-guide/cgroup-v2.rst | 20 +++ include/linux/memcontrol.h | 4 +- include/linux/page_counter.h | 13 ++ mm/memcontrol.c | 173 +++++++++++++++++------- 4 files changed, 161 insertions(+), 49 deletions(-) -- 2.25.4
next reply other threads:[~2020-05-21 0:20 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-21 0:20 Jakub Kicinski [this message] 2020-05-21 0:20 ` [PATCH mm v5 0/4] memcg: Slow down swap allocation as the available space gets depleted Jakub Kicinski 2020-05-21 0:20 ` [PATCH mm v5 1/4] mm: prepare for swap over-high accounting and penalty calculation Jakub Kicinski 2020-05-21 0:20 ` Jakub Kicinski 2020-05-21 0:20 ` [PATCH mm v5 2/4] mm: move penalty delay clamping out of calculate_high_delay() Jakub Kicinski 2020-05-21 0:20 ` Jakub Kicinski 2020-05-21 0:20 ` [PATCH mm v5 3/4] mm: move cgroup high memory limit setting into struct page_counter Jakub Kicinski 2020-05-21 0:20 ` Jakub Kicinski 2020-05-21 0:20 ` [PATCH mm v5 4/4] mm: automatically penalize tasks with high swap use Jakub Kicinski 2020-05-21 0:20 ` Jakub Kicinski 2020-05-21 0:22 ` [PATCH mm v5 0/4] memcg: Slow down swap allocation as the available space gets depleted Jakub Kicinski 2020-05-21 0:22 ` Jakub Kicinski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200521002010.3962544-1-kuba@kernel.org \ --to=kuba@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=cgroups@vger.kernel.org \ --cc=chris@chrisdown.name \ --cc=hannes@cmpxchg.org \ --cc=kernel-team@fb.com \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=shakeelb@google.com \ --cc=tj@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.