Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Oct 2010 14:42:06 +0000
From:      Michel Talon <talon@lpthe.jussieu.fr>
To:        freebsd-questions@freebsd.org
Subject:   Re: Cache Memory in top command
Message-ID:  <20101007144206.GA49527@lpthe.jussieu.fr>

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


Bruce Cran said:

> The top(1) man page is clearly in error, at least on FreeBSD systems.

Here is an answer to a similar question given by John Dyson the author
of the FreeBSD VM system.
http://groups.google.fr/group/comp.unix.bsd.freebsd.misc/browse_thread/thread/7d3d28b807640847/9c081931470adefb?hl=fr&q=jdyson+ctive,+Inact,+Wired,+Cache,+Buf#9c081931470adefb

Lowell Gilbert wrote:
> "Nospam" <nos...@no-nonsense.org> writes:

> > Here you see what I get to see when I use top (ofcourse it's at one
> > certain
> > time...). Why is there so much Inactive memory? Why isn't that
> > memory Free?
> > Is this correct, or is there some bad application?

> It's correct.  There's a slogan that goes "free memory is wasted
> memory."  Alternatively, you could look at "inactive" memory as being
> free if that makes you happier.

The memory stats are gathered, and a semi-layered state of the memory
pages are presented.  Inactive memory is quickly reusable, but is deemed
to be statistically inactive.  The wasted memory in the system is indeed
the memory marked 'free.'  Most of the other memory is used for other (caching)
purposes.

If you look at the latest version of 'top', Active, Inact, Wired and
Cache memory are all memory that contain mostly usable data.  Buf is
sort of a subset of Wired, and Free is totally disused.  Active memory
is mapped into processes, Inact memory might be mapped into processes,
and might be staged for being paged out.  Wired memory is mapped into
the kernel, and Cache memory is unmapped but still retains potentially
interesting data.  When a system is moderately heavily used, the Free
memory is actually kept small in amount, and is indeed the 'wasted'
memory in the system.

One time, I wrote some code that estimated the 'free' memory in the
system, and it isn't really very intuitive.  Since FreeBSD has VM memory
management, the amount of free real memory is tricky to calculate.  The
best thing to believe (if you can depend on paging), is that the system
will try to maintain a proper balance of memory usage. 

And elsewhere he says:

Cache  are the pages that are available for quick reuse.  Inact and
Active are part of the staging algorithm, where Inact is use as a 2nd
chance and staging for cleaning (writing changed data.) Free are also
pages that are available for quick reuse, but have no data, and are
available at interrupt time.

The stats scheme includes some stats associatiated with active pages
also. 



-- 

Michel TALON




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101007144206.GA49527>