Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I was looking at System Monitor on Linux and noticed that Firefox is using 441 MB of memory, and several other applications are using 274, 257, 232, etc (adding up to over 3 GB of virtual memory). So I switch over to the Resources tab, and it says I'm using 462 MB of memory and not touching swap. I'm confused. What does the virtual memory amount mean then if the programs aren't actually using it. I was thinking maybe memory they've requested but aren't using, but how would the OS know that? I can't think of any "I might need this much memory in the future" function..

share|improve this question
    
Extra credit reading and here. –  Dennis Williamson Apr 5 '10 at 0:46
    
I know how virtual memory works, my question is why does the "virtual memory" size listed not add up (not even close)? My (apparently naive) assumption was that if it said I was using 3 GB of virtual memory, then some combination of memory usage and swap usage should add up to 3 GB.. –  Brendan Long Apr 5 '10 at 2:16
    
Is "virtual memory usage" listing cached files? –  Brendan Long Apr 5 '10 at 17:09

2 Answers 2

up vote 1 down vote accepted

First off, shared memory is not really (?) counted correctly by top. Second, yes, a program asks for rights to memory, and then uses it, but it may never touch any, and the OS knows that. No problem at all for every app to have allocated all the ram and swap, as long as they don't try to use it :-D > We are not in a Mac OS Classic world (in fact, that is how the old Ram Doubler worked, letting you use the difference between allocated and used).

share|improve this answer
    
What do you mean by asking for rights to memory and never using it? Like if program uses malloc() but never accesses the pointer, the OS can tell? –  Brendan Long Apr 5 '10 at 2:17
    
Exactly. The program is in user space, and cannot do anything with out permission (that's what the pmmu is for). So yes, the OS tracks that. Back in the days when most of us didn't have systems that would take a gig of RAM, there were a few apps (like object databases) that allocated 3GB of address space, but used only a little of that. –  Ronald Pottol Apr 5 '10 at 20:39

Have you ever tried to fire "vmstat"?? iff not help yourself and fire it from the command line like this :

vmstat

And please RTFM for lessen your owes. I have seen couple of interesting flags there in the man page...which might help you to understand.Plus iff you are really concerned about firefox memory consumption.. then have at look at this solution..here

http://unixbhaskar.blogspot.com/2009/10/firefox-saga-on-opensuse.html

and here

http://unixbhaskar.blogspot.com/2010/02/cleanup-firefox-clogging-by-pruning-its.html

And iff you really interested know the Linux internals for dynamic memory allocation read here

http://www.ibm.com/developerworks/linux/library/l-linux-slab-allocator/index.html

And use one binary called " pmap"..use it like this pmap (process-id) to get to know how that particular application using memory inside.To know more about "man pmap".

I hope I have given you much insight get on.

Cheers!

share|improve this answer
    
I'm not concerned about Firefox's memory consumption. It's obviously not using that much, since the entire computer was only using 500 MB of memory. –  Brendan Long Apr 5 '10 at 17:05

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.