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