[CentOS] free

Wed Jul 14 20:34:05 UTC 2010
Todd Denniston <Todd.Denniston at tsb.cranrdte.navy.mil>

Flaherty, Patrick wrote, On 07/14/2010 03:49 PM:
> I did some testing a while back, and my results showed that the -/+
> buffers line seemed to be the *Minimum* amount of ram available if the
> kernel purged it's buffers/cache. Sometimes more is available.
> 
> (Roughly) The test was:
> * Turn swap off
> * Run free
> * Run 20 instances of a test program that malloc'd 100 megs of ram
> * Run free, see 2 gigs of ram + orginal amount of ram used.
> * Kill N number of those programs, which should free up N*100megs
> * Run free, output of -/+ did not reflect 2gigs - (N*100 megs).
> 
>  I followed up by running enough instances of the test program that I
> should have run out of memory free said I had, but the programs all
> started, none were killed. I ran free again got a number pretty close
> to what I thought should be free. It's a fun test to play with, I assume
> results vary from kernel to kernel (how aggressive the kernel is
> cleaning up returned ram).
> 
> Patrick

Did your test program actually USE the 100 megs of ram?
Because of "lazy allocation" or "optimistic memory allocation"*** as done by the kernel, the memory
is not actually consumed until used.  When I did something similar, I simply wrote a char to each
byte of memory(there are faster ways, but I wanted simple not fast) after each allocation.
You might have done this but I did not interpret your message to indicate that.


***I don't remember which is the correct term to search.
but this link has two sets of source to show the difference:
http://linuxdevcenter.com/pub/a/linux/2006/11/30/linux-out-of-memory.html
-- 
Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter