Jim C. Nasby wrote:
> On Mon, Mar 20, 2006 at 02:15:22PM -0500, Vivek Khera wrote:
>
>>I think FreeBSD has a hard upper limit on the total ram it will use
>>for disk cache. I haven't been able to get reliable, irrefutable,
>>answers about it, though.
>
>
> It does not. Any memory in the inactive queue is effectively your 'disk
> cache'. Pages start out in the active queue, and if they aren't used
> fairly frequently they will move into the inactive queue. From there
> they will be moved to the cache queue, but only if the cache queue falls
> below a certain threshold, because in order to go into the cache queue
> the page must be marked clean, possibly incurring a write to disk. AFAIK
> pages only go into the free queue if they have been completely released
> by all objects that were referencing them, so it's theoretically
> posisble for that queue to go to 0.
Exactly.
The so-called limit (controllable via various sysctl's) is on the amount
of memory used for kvm mapped pages, not cached pages, i.e - its a
subset of the cached pages that are set up for immediate access (the
others require merely to be shifted from the 'Inactive' queue to this
one before they can be operated on - a relatively cheap operation).
So its really all about accounting, in a sense - whether pages end up in
the 'Buf' or 'Inactive' queue, they are still cached!
Cheers
Mark