NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Free memory pages estimation for process use
On Thu, Jul 26, 2012 at 2:59 PM, Nicolas Joly <njoly%pasteur.fr@localhost>
wrote:
>
> Hi,
>
> While testing free memory consumable requests with OGS (Open Grid
> Scheduler), i noticed that free memory reported by a NetBSD host was
> amazingly low ... preventing its use.
>
> By example, on a 8GB NetBSD/amd64 machine running -current :
>
> njoly@lanfeust [gridscheduler/source]> qhost
> HOSTNAME ARCH NCPU LOAD MEMTOT MEMUSE SWAPTO
> SWAPUS
> -------------------------------------------------------------------------------
> lanfeust.sis.pasteur.fr nbsd-x86_64 8 0.09 7.8G 7.7G 40.0G
> 0.0
>
> At the same time 'vmstat -s'report the following:
>
> 4096 bytes per page
> 8 page colors
> 2032144 pages managed
> 10496 pages free
> 1247833 pages active
> 616160 pages inactive
> 0 pages paging
> 1510 pages wired
> 8937 zero pages
> 1 reserve pagedaemon pages
> 40 reserve kernel pages
> 10717 anonymous pages
> 1848644 cached file pages
> 6142 cached executable pages
> [...]
>
> Looking into the OGS code i found that memory/swap values are fetched
> with VM_UVMEXP2 sysctl :
>
> mib[0] = CTL_VM;
> mib[1] = SGE_VM_UVMEXP;
> size = sizeof(uvmexp);
>
> sysctl(mib, sizeof(mib)/sizeof(int), &uvmexp, &size, NULL, 0);
>
> /* Memory */
> mem_info->mem_total = ((double) uvmexp.npages * uvmexp.pagesize) / (1024 *
> 1024);
> mem_info->mem_free = ((double) uvmexp.free * uvmexp.pagesize) / (1024 *
> 1024);
>
> /* Swap */
> mem_info->swap_total = ((double) uvmexp.swpages * uvmexp.pagesize) / (1024
> * 1024);
> mem_info->swap_free = (((double) uvmexp.swpages - uvmexp.swpginuse) *
> uvmexp.pagesize) / (1024 * 1024);
>
> But mem_free does only take uvmexp.free member into account, which
> seems wrong to me. At least uvmexp.inactive should be added ...
>
> Is it correct ? Anything else i missed ?
>
> Thanks in advance,
> Regards.
>
> --
> Nicolas Joly
>
> Biology IT Center
> Institut Pasteur, Paris.
I look at free memory like this:
https://github.com/msporleder/cons/blob/master/free/free.c
but it looks like you're going the same thing.
Doesn't linux have the same problem where file caching takes away from
total "free" space?
Home |
Main Index |
Thread Index |
Old Index