On Mon, Aug 17, 2020 at 7:11 AM Waiman Long <longman@xxxxxxxxxx> wrote: > > Memory controller can be used to control and limit the amount of > physical memory used by a task. When a limit is set in "memory.high" > in a non-root memory cgroup, the memory controller will try to reclaim > memory if the limit has been exceeded. Normally, that will be enough > to keep the physical memory consumption of tasks in the memory cgroup > to be around or below the "memory.high" limit. > > Sometimes, memory reclaim may not be able to recover memory in a rate > that can catch up to the physical memory allocation rate especially > when rotating disks are used for swapping or writing dirty pages. In > this case, the physical memory consumption will keep on increasing. Isn't this the real underlying issue? Why not make the guarantees of memory.high more strict instead of adding more interfaces and complexity? By the way, have you observed this issue on real workloads or some test cases? It would be good to get a repro with simple test cases.