Memory usage mismatch
I am developping software for an ARM9 platform, using linux kernel 2.4.27.
Yesterday we stumbled accross memory capacity problems and I am currently investigating. Reducing the size of the ramdisk is one option, but I'd also like more insight in how processes use memory and here is where I get stuck.
- Right after startup, at the prompt, no user programs running, run the "free" command and note the free memory.
- Startup all of the applications that I need running.
- Run the "free" command and calculate the difference in free memory, in my case the difference is 37 Mb, which must mean that all my programs together consume 37 Mb including everything.
I also created a program that reads all /proc/<pid>/status files and I put all my processes into a list. If I add up all, removing duplicates (multi-thread processes), I get RSS 48 Mb, VMsize 70 Mb, Data 9652 Mb, Exe 1416, Stack 244, and Lib-Size 57656.
Of course this last Lib-figure is incorrect, I should use just one of the lib sizes from one process as every process is using the same set of libraries.
Basic question now is that the added RSS, VMSize, etc figures do not match up to the free memory difference the the two "free" calls provided.
Does anyone have any idea ?