On Tue 04-12-18 10:40:29, Xunlei Pang wrote: > On 2018/12/4 AM 1:22, Michal Hocko wrote: > > On Mon 03-12-18 23:20:31, Xunlei Pang wrote: > >> On 2018/12/3 下午7:56, Michal Hocko wrote: > >>> On Mon 03-12-18 16:01:18, Xunlei Pang wrote: > >>>> There may be cgroup memory overcommitment, it will become > >>>> even common in the future. > >>>> > >>>> Let's enable kswapd to reclaim low-protected memory in case > >>>> of memory pressure, to mitigate the global direct reclaim > >>>> pressures which could cause jitters to the response time of > >>>> lantency-sensitive groups. > >>> > >>> Please be more descriptive about the problem you are trying to handle > >>> here. I haven't actually read the patch but let me emphasise that the > >>> low limit protection is important isolation tool. And allowing kswapd to > >>> reclaim protected memcgs is going to break the semantic as it has been > >>> introduced and designed. > >> > >> We have two types of memcgs: online groups(important business) > >> and offline groups(unimportant business). Online groups are > >> all configured with MAX low protection, while offline groups > >> are not at all protected(with default 0 low). > >> > >> When offline groups are overcommitted, the global memory pressure > >> suffers. This will cause the memory allocations from online groups > >> constantly go to the slow global direct reclaim in order to reclaim > >> online's page caches, as kswap is not able to reclaim low-protection > >> memory. low is not hard limit, it's reasonable to be reclaimed by > >> kswapd if there's no other reclaimable memory. > > > > I am sorry I still do not follow. What role do offline cgroups play. > > Those are certainly not low mem protected because mem_cgroup_css_offline > > will reset them to 0. > > > > Oh, I meant "offline groups" to be "offline-business groups", memcgs > refered to here are all "online state" from kernel's perspective. What is offline-business group? Please try to explain the actual problem in much more details and do not let us guess. -- Michal Hocko SUSE Labs