On Tue, Mar 21, 2006 at 11:03:26PM +1200, Mark Kirkwood wrote:
> 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!
So what's the difference between Buf and Active then? Just that active
means it's a code page, or that it's been directly mapped into a
processes memory (perhaps via mmap)?
--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461