Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Apr 2014 00:11:51 +0400
From:      Dmitry Sivachenko <trtrmitya@gmail.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-hackers@freebsd.org, =?utf-8?Q?Trond_Endrest=C3=B8l?= <Trond.Endrestol@fagskolen.gjovik.no>
Subject:   Re: madvise() vs posix_fadvise()
Message-ID:  <8DAE3175-FE32-4D17-A386-063DDB6C45F7@gmail.com>
In-Reply-To: <5426E303-E35B-4D4A-AB62-3571228A5A2C@gmail.com>
References:  <D6BD48AF-9522-495D-8D54-37854E53C272@gmail.com> <201404031102.38598.jhb@freebsd.org> <EF134BCA-1E92-4C98-8763-9A31EA96839A@gmail.com> <201404041612.35889.jhb@freebsd.org> <5426E303-E35B-4D4A-AB62-3571228A5A2C@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 05 апр. 2014 г., at 1:02, Dmitry Sivachenko <trtrmitya@gmail.com> wrote:

> On 05 апр. 2014 г., at 0:12, John Baldwin <jhb@FreeBSD.org> wrote:
> 
>> 
>> MADV_WILLNEED is not going to give you what you want.  OTOH, if you haven't
>> tried FreeBSD 10 yet, I would suggest trying that.  There have been changes
>> to pagedaemon that might make it do a better job of kicking out the pages
>> of the log files automatically.
>> 
> 
> 
> I did. My situation became worse after I moved from stable/9 to stable/10.
> My feeling is that stable/10 pushes rarely used mmaped pages out of RAM more aggressively than stable/9 did.
> 
> For now, the only solution I found is doing msync(MS_INVALIDATE) on log files after gzipping and after backup via rsync.
> This moves corresponding memory pages from Inactive to Free and prevents system to occupy all free memory with cached log files and to purge mmaped data out of RAM to accomodate more disk cache.
> 
> What I would love to see is an ability to tell OS not to release mmaped data unless "really needed" (disk cache is not an excuse).


One more observation as it seems to be related.
If my program allocates RAM via malloc() rather than mmap(), I see that VM swaps rarely used parts of malloced data out as disk is being used
(more and more memory goes to Inactive with cached files content).

This is also different from stable/9 and seems not good.  Why to keep cached content of files forever? (seems there is no timeout for keeping cached files content in Inactive state).  So after few days of uptime all available RAM is either in Active state with frequently used pages of running processes or in Inactive state with cached files data.  Rarely used parts of processes memory goes to swap.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8DAE3175-FE32-4D17-A386-063DDB6C45F7>