Re: Very aggressive memory reclaim

Dave Chinner
2011-03-28T21:50:49Z

[cc xfs and mm lists]

On Mon, Mar 28, 2011 at 08:39:29PM +0400, John Lepikhin wrote:
> Hello,
>
> I use high-loaded machine with 10M+ inodes inside XFS, 50+ GB of
> memory, intensive HDD traffic and 20..50 forks per second. Vanilla
> kernel 2.6.37.4. The problem is that kernel frees memory very
> aggressively.
>
> For example:
>
> 25% of memory is used by processes
> 50% for page caches
> 7% for slabs, etc.
> 18% free.
>
> That's bad but works. After few hours:
>
> 25% of memory is used by processes
> 62% for page caches
> 7% for slabs, etc.
> 5% free.
>
> Most of files are cached, works perfectly. This is the moment when
> kernel decides to free some memory. After memory reclaim:
>
> 25% of memory is used by processes
> 25% for page caches(!)
> 7% for slabs, etc.
> 43% free(!)
>
> Page cache is dropped, server becomes too slow. This is the beginning
> of new cycle.
>
> I didn't found any huge mallocs at that moment. Looks like because of
> large number of small mallocs (forks) kernel have pessimistic forecast
> about future memory usage and frees too much memory. Is there any
> options of tuning this? Any other variants?

First it would be useful to determine why the VM is reclaiming so
much memory. If it is somewhat predictable when the excessive
reclaim is going to happen, it might be worth capturing an event
trace from the VM so we can see more precisely what it is doiing
during this event. In that case, recording the kmem/* and vmscan/*
events is probably sufficient to tell us what memory allocations
triggered reclaim and how much reclaim was done on each event.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com