i tend to calculate a process' memory consumption in deltas, meaning, how memory it consumes in addition to the shared sections. So i usually take a look at the write-able and private consumption as reported by pmap. ( pmap <pid> ). Please note, there are numerous discussions of how to estimate system/process memory consumption. Consider for example an in-kernel inode, it is not counted in the process address space even though it serves "the process", what about in-flight bio, skbuff ?
These problem are very common in the embedded world, we fear of being "oomed" :) On Fri, Dec 16, 2011 at 3:34 PM, Oleg Goldshmidt <[email protected]> wrote: > > Shlomi Fish <[email protected]> writees: > > > Hi all. > > > > I reported a bug in Amarok ( > > https://bugs.kde.org/show_bug.cgi?id=288876 ) where it sometimes > > consumes over 10% of my RAM on startup, and it was closed with this > > comment: > > > > <<<< Well, there is the virtual memory but it is the residual memory > > use that matters. Yours us just 371M which is absolutely correct. > > FWIW: I suggest you read up some documentation on dynamic memory use > > in Linux. In short: the more memory available, the more will be > > used, the system distributes this evenly to the running processes > > depending on their priority. > > > > Not a bug. > >>>>> > > > > Well, I don't understand it. What is "residual memory" in this > > context (as Google searches for it yields junk.), and why is still > > OK that Amarok consumes so much. > > Well, there are two issues here. > > 1. I suspect/assume that "residual memory" means "resident set" > (someone confused "resident" with "residual"?). This is the total > size of pages mapped in RAM, per process, without VM or process > kernel data structures. This has been discussed here before, e.g., > > http://www.mail-archive.com/[email protected]/msg31797.html > > 2. What was it that you considered a bug? The screenshot of top in > your bug report shows resident set size (a.k.a. RSS, RES field in > top) of 387M, which is consistent with 12.9% of your total 3G of > RAM. If this is your complaint (why the process uses so much RAM?) > then someone did not read your report attentively enough - I mean, > the response can be (mis)construed as "you've looked at a wrong > field". > > At the same time, it is not at all clear why they should consider > it a bug. Out of curiosity, I started amarok on my F14 box and its > RSS is 90M (without doing anything at all). There are other > processes (quite a few) running on the machine right now, and this > may explain why it is smaller than in your case (you did a "clean" > experment, didn't you?). The app may allocate and preload/cache > all sorts of stuff if it can - if there is memory available, why > withhold it? This is what they told you, in different words. > > Finally, I did > > egrep "^Vm" /proc/<pid>/status > > and the app's heap is almost 10 times larger than RSS, i.e., stuff > was allocated but not mapped. Maybe this is what they had in mind > when they said that RSS is what matters. Another datum - the size > of shared libraries used, is also significantly (50%) more than > RSS. And if you note that RSS counts shared pages as belonging to > the process (since they are mapped into the process's virtual > memory space) it stops looking so badly. > > Hope something is clearer than it used to be. > > -- > Oleg Goldshmidt | [email protected] > > _______________________________________________ > Linux-il mailing list > [email protected] > http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il _______________________________________________ Linux-il mailing list [email protected] http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il
