On Fri, 2018-07-13 at 10:36 +1000, Dave Chinner wrote: > On Thu, Jul 12, 2018 at 12:57:15PM -0700, James Bottomley wrote: > > What surprises me most about this behaviour is the steadiness of > > the page cache ... I would have thought we'd have shrunk it > > somewhat given the intense call on the dcache. > > Oh, good, the page cache vs superblock shrinker balancing still > protects the working set of each cache the way it's supposed to > under heavy single cache pressure. :) Well, yes, but my expectation is most of the page cache is clean, so easily reclaimable. I suppose part of my surprise is that I expected us to reclaim the clean caches first before we started pushing out the dirty stuff and reclaiming it. I'm not saying it's a bad thing, just saying I didn't expect us to make such good decisions under the parameters of this test. > Keep in mind that the amount of work slab cache shrinkers perform is > directly proportional to the amount of page cache reclaim that is > performed and the size of the slab cache being reclaimed. IOWs, > under a "single cache pressure" workload we should be directing > reclaim work to the huge cache creating the pressure and do very > little reclaim from other caches.... That definitely seems to happen. The thing I was most surprised about is the steady pushing of anonymous objects to swap. I agree the dentry cache doesn't seem to be growing hugely after the initial jump, so it seems to be the largest source of reclaim. > [ What follows from here is conjecture, but is based on what I've > seen in the past 10+ years on systems with large numbers of negative > dentries and fragmented dentry/inode caches. ] OK, so I fully agree with the concern about pathological object vs page freeing problems (I referred to it previously). However, I did think the compaction work that's been ongoing in mm was supposed to help here? James