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@xxxxxxxxxxxxx Pervasive Software http://pervasive.com work: 512-231-6117 vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461