W dniu 2011-01-26 19:44, John Baldwin pisze:
On Wednesday, January 26, 2011 1:04:02 pm Marco van Tol wrote:
On Wed, Jan 26, 2011 at 12:35:56PM -0500, John Baldwin wrote:
On Wednesday, January 26, 2011 8:20:28 am Bartosz Stec wrote:
W dniu 2011-01-26 14:06, John Baldwin pisze:
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).
Thanks for the explanation. So 1231MB - 199MB Buf and we got about 1GB
of memory instead of 2B.

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.

OK, here you go:
# sysctl hw | grep mem

     hw.physmem: 2125893632
     hw.usermem: 1212100608
     hw.realmem: 2139029504
     hw.pci.host_mem_start: 2147483648
Humm, you should still have 2GB of RAM then.  All the memory you set aside
for ARC should be counted in the 'wired' count, so I'm not sure why you see
1GB of RAM rather than 2GB.
For what its worth (seems to be the same values top shows), the sysctl's
I use to make cacti graphs of memory usage are: (Counts are in pages)

vm.stats.vm.v_page_size

vm.stats.vm.v_wire_count
vm.stats.vm.v_active_count
vm.stats.vm.v_inactive_count
vm.stats.vm.v_cache_count
vm.stats.vm.v_free_count

Using the output of those sysctls I allways get a cacti graph which at
least very much seems to account for all memory, and has a flat surface
in a stacked graph.
These sysctls are exactly what top uses.  There is also a 'v_page_count'
which is a total count of pages.

So here's additional sysctl output from now:

   fbsd# sysctl hw | grep mem
   hw.physmem: 2125893632
   hw.usermem: 1392594944
   hw.realmem: 2139029504
   hw.pci.host_mem_start: 2147483648

   fbsd# sysctl vm.stats.vm
   vm.stats.vm.v_kthreadpages: 0
   vm.stats.vm.v_rforkpages: 0
   vm.stats.vm.v_vforkpages: 1422927
   vm.stats.vm.v_forkpages: 4606557
   vm.stats.vm.v_kthreads: 40
   vm.stats.vm.v_rforks: 0
   vm.stats.vm.v_vforks: 9917
   vm.stats.vm.v_forks: 30429
   vm.stats.vm.v_interrupt_free_min: 2
   vm.stats.vm.v_pageout_free_min: 34
   vm.stats.vm.v_cache_max: 27506
   vm.stats.vm.v_cache_min: 13753
   vm.stats.vm.v_cache_count: 20312
   vm.stats.vm.v_inactive_count: 18591
   vm.stats.vm.v_inactive_target: 20629
   vm.stats.vm.v_active_count: 1096
   vm.stats.vm.v_wire_count: 179027
   vm.stats.vm.v_free_count: 6193
   vm.stats.vm.v_free_min: 3260
   vm.stats.vm.v_free_target: 13753
   vm.stats.vm.v_free_reserved: 713
   vm.stats.vm.v_page_count: 509752
   vm.stats.vm.v_page_size: 4096
   vm.stats.vm.v_tfree: 196418851
   vm.stats.vm.v_pfree: 2837177
   vm.stats.vm.v_dfree: 0
   vm.stats.vm.v_tcached: 1305893
   vm.stats.vm.v_pdpages: 3527455
   vm.stats.vm.v_pdwakeups: 187
   vm.stats.vm.v_reactivated: 83786
   vm.stats.vm.v_intrans: 3053
   vm.stats.vm.v_vnodepgsout: 134384
   vm.stats.vm.v_vnodepgsin: 29213
   vm.stats.vm.v_vnodeout: 96249
   vm.stats.vm.v_vnodein: 29213
   vm.stats.vm.v_swappgsout: 19730
   vm.stats.vm.v_swappgsin: 8573
   vm.stats.vm.v_swapout: 5287
   vm.stats.vm.v_swapin: 2975
   vm.stats.vm.v_ozfod: 83338
   vm.stats.vm.v_zfod: 2462557
   vm.stats.vm.v_cow_optim: 330
   vm.stats.vm.v_cow_faults: 1239253
   vm.stats.vm.v_vm_faults: 5898471

   fbsd# sysctl vm.vmtotal
   vm.vmtotal:
   System wide totals computed every five seconds: (values in kilobytes)
   ===============================================
   Processes:              (RUNQ: 1 Disk Wait: 0 Page Wait: 0 Sleep: 60)
   Virtual Memory:         (Total: 4971660K Active: 699312K)
   Real Memory:            (Total: 540776K Active: 29756K)
   Shared Virtual Memory:  (Total: 41148K Active: 19468K)
   Shared Real Memory:     (Total: 4964K Active: 3048K)
   Free Memory Pages:      105308K


   /usr/bin/top line: Mem: 4664K Active, 73M Inact, 700M Wired, 79M
   Cache, 199M Buf, 23M Free
   Sum (Without Buf): 879,5 MB

   So what are we looking at? Wrong sysctls/top output or maybe
   actually FreeBSD doesn't use all available RAM for some reason?
   Could it be hardware problem? Maybe I should provide some additional
   data?

--
Bartosz Stec


_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to