RAM/Memory resources on 7 STABLE

Tim Kellers timothyk at wallnet.com
Sat Jan 17 10:09:20 PST 2009


David Scheidt wrote:
> On Sat, Jan 17, 2009 at 01:25:19AM +0000, RW wrote:
>   
>> On Fri, 16 Jan 2009 22:23:06 +0100 (CET)
>> Wojciech Puchar <wojtek at wojtek.tensor.gdynia.pl> wrote:
>>
>>     
>>>> When I boot this machine it usually shows (in top) about 11 G Free
>>>> in the Mem: line
>>>>
>>>> The machine, in this snippet, has been up for 5 days 22 hours and
>>>> change and it now shows 1436M free in the Mem: line
>>>> I've been watching the number and it has been slowly decreasing
>>>> over the 5 days since its last boot.  It looks like as the Free
>>>> line trends down, the Inact value trends up to keep the total Mem
>>>> used at the installed 12G
>>>>         
>>> ALL unused memory is used as disk cache in FreeBSD.
>>>       
>> Although, looking at the output of top, most of the memory is in the
>> inactive state. As I understand it cache pages go from active to
>> cached, and the inactive queue contains pages that need to be written
>> out to swap before they can be reused.
>>     
>
> No.  It just means they're not active -- nothing has touched them
> "recently".  They may be dirty.  They may not be.  Recently means the
> last 20 seconds to a minute, depending.  
>
>
>   
>> The very high level of inactive memory looks suspiciously like a
>> memory-leak to me. Hopefully someone who knows more about this will
>> step in - don't take my word for it.
>>     
>
> I have no data on the system in question, but it's very common for a
> machine to have large amounts of inactive memory, particularly one
> that's not under any sort of memory pressure. 
>
> My basically idle workstation has 1.5 GB of memory, 5 MB free, and over
> a gig inactive.  Since I'm not doing anything with it (I'm writing this
> from another machine), and its just hanging out, this is what I'd expect.
> Should it do something that requires memory, the pager will toss clean
> inactive pages to the free list, and they'll be reused.  Of course, if
> what they're required for is something they already have in them (like
> the code segments of "recently" terminated application that's
> restarted), they'll get reused, saving having to read them from disk.
> The only time you'll large amounts of memory on the Free list is when
> a machine is first booted and hasn't touched that memory for anything,
> or when an application that's got a large dyanmically allocated block
> of memory terminates.  The rest of the time, the free list should be
> small.  
>
> If the machine isn't swapping, there's usually nothing to worry about.
>
>   

For comparison's sake here is the top -P output from my Dell 2950 dual 
quad core server; this one is has 8 GB or RAM installed



last pid: 94403;  load averages:  0.02,  0.38,  0.63   up 11+21:13:56  
12:12:47
69 processes:  1 running, 68 sleeping
CPU 0:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 2:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 4:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 5:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 6:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 7:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 226M Active, 2683M Inact, 465M Wired, 552K Cache, 214M Buf, 4537M Free
Swap: 16G Total, 16G Free


 > uname -a
FreeBSD dl 7.1-STABLE FreeBSD 7.1-STABLE #7: Mon Jan  5 13:53:52 EST 
2009     root at dl:/usr/obj/usr/src/sys/AMD  amd64

And here is the top -P from my Dell 2850 dual core server with 12 GB RAM 
installed:

last pid:  9877;  load averages:  0.07,  0.04,  0.07    up 6+22:31:45  
12:20:13
98 processes:  1 running, 97 sleeping
CPU 0:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 1:  0.0% user,  0.0% nice,  1.5% system,  0.0% interrupt, 98.5% idle
CPU 2:  0.4% user,  0.0% nice,  0.0% system,  0.0% interrupt, 99.6% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 242M Active, 10G Inact, 431M Wired, 128M Cache, 214M Buf, 943M Free
Swap: 2014M Total, 2014M Free

FreeBSD www 7.1-STABLE FreeBSD 7.1-STABLE #2: Tue Jan  6 19:24:57 EST 
2009     root at www:/usr/obj/usr/src/sys/DELL64  amd64


Both of these machines are running nearly identical software; the main 
difference is that the 2950 quad core is also running Samba. I can see 
the numbers move up and down between Free and Inactive on the 2950, but 
the 2850 just continues to have Free in decline; it now shows 10G 
inactive.  When I stop and restart apache, MySQL and Mailman on the 
2850, I can see an small increase in the Free and a decrease in 
inactive.  As far as I know, neither machine has ever gone into swap.  
The 2850 has only 2 G of swap space because originally the machine only 
had 1 G of RAM.  I don't know what the Free vs Inactive numbers were on 
that box back then.  I just never noticed the numbers.

Again, I don't know that there is any problem at all, I'm just trying to 
understand why the 2 machines would have such different amounts of 
Inactive and Free memory.

Tim




More information about the freebsd-questions mailing list