Hello, On Tue, Apr 21, 2020 at 01:06:12PM +0200, Michal Hocko wrote: > I suspect that the problem is more related to the swap being handled as > a separate resource. And it is still not clear to me why it is easier > for you to tune swap.high than memory.high. You have said that you do > not want to set up memory.high because it is harder to tune but I do > not see why swap is easier in this regards. Maybe it is just that the > swap is almost never used so a bad estimate is much easier to tolerate > and you really do care about runaways? Johannes responded a lot better. I'm just gonna add a bit here. Swap is intertwined with memory but is a very different resource from memory. You can't seriously equate primary and secondary storages. We never want to underutilize memory but we never want to completely fill up secondary storage. They're exactly the opposite in that sense. It's not that protection schemes can't apply to swap but that such level of dynamic control isn't required because simple upper limit is useful and easy enough. Another backing point I want to raise is that the abrupt transition which happens on swap depletion is a real problem that userspace has been trying to work around. memory.low based protection and oomd is an obvious example but not the only one. earlyoom[1] is an independent project which predates all these things and kills when swap runs low to protect the system from going down the gutter. In this respect, both oomd and earlyoom basically do the same thing but they're racing against the kernel filling up the space. Once the swap space is gone, the programs themselves might not be able to make reasonable forward progress. The only measure they can currently employ is polling more frequently and killing ealier so that swap space never actually runs out, but it's a silly and losing game as the underyling device gets faster and faster. Note that at least fedora is considering including either earlyoom or oomd by default. The problem addressed by swap.high is real and immediate. Thanks. -- tejun [1] https://github.com/rfjakob/earlyoom