Proposal: overcommit on, optional swap on if user decides so.

Tilman Baumann tilman at baumann.name
Fri Aug 22 19:34:53 CEST 2008


Tilman Baumann wrote:
> Tilman Baumann wrote:
> 
>>> i'd think it would make little sense so make the system
>>> that fragile. fix the memory usage issue - don't just "get more slow slow slow"
>>> ram. :)
>> As i said, i had made the experience that it improved the system 
>> greatly. Shouldn't we just test it?
>> Perhaps, that is what i will try to do with my Neo1973 soon...
> 
> This is how swap was used after launching some apps simultaniously 
> (tangogps, navit, browser, mediaplayer) using them for some time and 
> then shut them down again:
>               total       used       free     shared    buffers     cached
> Mem:        126268     111008      15260          0       1304      68736
> -/+ buffers/cache:      40968      85300
> Swap:        64720         44      64676

Now with  sysctl vm.overcommit_memory=0
If i had knew before....

This is with tangogps, navit, mediaplayer and debug tool (python) 
running at the same time.
And still less memory used than before without these apps running!
#free
              total       used       free     shared    buffers     cached
Mem:        126268     110124      16144          0       1472      58012
-/+ buffers/cache:      50640      75628
Swap:        64720          0      64720

This is after i closed all the apps:
#free
              total       used       free     shared    buffers     cached
Mem:        126268      93896      32372          0       1472      56620
-/+ buffers/cache:      35804      90464
Swap:        64720          0      64720

93896Kb vs 111008Kb difference between without and with overcommit!
In words 17Mb saved.
And this is while idle. No apps running.
(I have not saved any measurement while i had lots of apps running last 
time. So i have no comparison for that.)

Suprisingly, no swap is used this time. But on the other hand not so 
suprisingly. There is tons of unused RAM free, why bother.
And maybe the 44k last time where really only some unusually leaked mem.

Conclusion:
You can bet i will use overcommit. And because i see no downside i will 
use swap too.
I encourage openmoko and dist builders to think about it too.

For those of you who like to try. I have a quick hack.

Put these lines at the end of the initscript /etc/init.d/mountall.sh
######
if test -e /media/card/swapfile 

then
         swapon /media/card/swapfile
fi
sysctl vm.overcommit_memory=0
######
You can choose any other file or make your own, since it is a quick hack 
i did not bother. Remember, /media/card/ needs to be mounted.

Then execute these commands once and reboot.
dd if=/dev/zero of=/media/card/swapfile bs=1024 count=65536
mkswap /media/card/swapfile

This makes 64Mb of swap, you could choose a smaller size if you want. 
Bigger is probably overkill. Depends on how valuable free SD card space 
is to you. ;)

Using a swap partition would be possible too. But then i would have 
needed to partition the SD card which i did not want to do right now.


I think i will make some scripts some time which detect the presence of 
swapfiles of swap partitions and uses them automatically.
And some small helper app to let the user prepare the system for that. 
(creating swapfile)
Should not be too bad to make.

-- 
Drucken Sie diese Mail bitte nur auf Recyclingpapier aus.
Please print this mail only on recycled paper.




More information about the community mailing list