top shows only half of realmem?

John Baldwin jhb at
Wed Jan 26 13:07:45 UTC 2011

On Wednesday, January 26, 2011 7:20:34 am Bartosz Stec wrote:
> Guys,
> could someone explain me this?
>     # sysctl hw.realmem
>     hw.realmem: 2139029504
> top line shows:
>     Mem: 32M Active, 35M Inact, 899M Wired, 8392K Cache, 199M Buf, 58M Free
> 32+35+899+8+199+58 = 1231MB
> Shouldn't that sum to all available ram? Or maybe I'm reading it wrong? 
> This machine has indeed 2GB of ram on board and showed in BIOS.
> i386  FreeBSD 8.2-PRERELEASE #16: Mon Jan 17 22:28:53 CET 2011
> Cheers.

First, don't include 'buf' as isn't a separate set of RAM, it is only a range 
of the virtual address space in the kernel.  It used to be relevant when the 
buffer cache was separate from the VM page cache, but now it is mostly 
irrelevant (arguably it should just be dropped from top output).

However, look at what hw.physmem says (and the realmem and availmem lines in
dmesg).  realmem is actually not that useful as it is not a count of the 
amount of memory, but the address of the highest memory page available.  There 
can be less memory available than that due to "holes" in the address space for 
PCI memory BARs, etc.

John Baldwin

More information about the freebsd-stable mailing list