Scott Marlowe wrote:
On Mon, 2006-03-20 at 08:45, Jim C. Nasby wrote:

On Fri, Mar 17, 2006 at 05:00:34PM -0600, Scott Marlowe wrote:

last pid:  5788;  load averages:  0.32,  0.31,  0.28                            
                         up 127+15:16:08 13:59:24
169 processes: 1 running, 168 sleeping
CPU states:  5.4% user,  0.0% nice,  9.9% system,  0.0% interrupt, 84.7% idle
Mem: 181M Active, 2632M Inact, 329M Wired, 179M Cache, 199M Buf, 81M Free
Swap: 4096M Total, 216K Used, 4096M Free

 PID USERNAME      PRI NICE  SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND
14501 pgsql           2   0   254M   242M select 2  76:26  1.95%  1.95% postgre
5720 root           28   0  2164K  1360K CPU0   0   0:00  1.84%  0.88% top
5785 pgsql           2   0   255M 29296K sbwait 0   0:00  3.00%  0.15% postgre
5782 pgsql           2   0   255M 11900K sbwait 0   0:00  3.00%  0.15% postgre
5772 pgsql           2   0   255M 11708K sbwait 2   0:00  1.54%  0.15% postgre

That doesn't look good.  Is this machine freshly rebooted, or has it
been running postgres for a while?  179M cache and 199M buffer with 2.6
gig inactive is horrible for a machine running a 10gig databases.

No, this is perfectly fine. Inactive memory in FreeBSD isn't the same as
Free. It's the same as 'active' memory except that it's pages that
haven't been accessed in X amount of time (between 100 and 200 ms, I
think). When free memory starts getting low, FBSD will start moving
pages from the inactive queue to the free queue (possibly resulting in
writes to disk along the way).

IIRC, Cache is the directory cache, and Buf is disk buffers, which is
somewhat akin to shared_buffers in PostgreSQL.


So, then, the inact is pretty much the same as kernel buffers in linux?


I think Freebsd 'Inactive' corresponds pretty closely to Linux's 'Inactive Dirty'|'Inactive Laundered'|'Inactive Free'.

From what I can see, 'Buf' is a bit misleading e.g. read a 1G file randomly and you increase 'Inactive' by about 1G - 'Buf' might get to 200M. However read the file again and you'll see zero i/o in vmstat or gstat. From reading the Freebsd architecture docs, I think 'Buf' consists of those pages from 'Inactive' or 'Active' that were last kvm mapped for read/write operations. However 'Buf' is restricted to a fairly small size (various sysctls), so really only provides a lower bound on the file buffer cache activity.

Sorry to not really answer your question Scott - how are Linux kernel buffers actually defined?

Cheers

Mark

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to