Tuning compcache/ramzswap to allow (X)ubuntu LiveCD install with 128MB of RAM

John McCabe-Dansted gmatht at gmail.com
Sat Oct 10 04:33:54 BST 2009


Ubuntu uses compcache to generate a compressed memory ramzswap device
that we can swap onto to. My experience is that in practice we have a
compression ratio of roughly 2:1 or better so each page swapped out
saves ~2KB. Ubuntu defaults to a compcache size of 25% of ram, when
full this device takes about 12% of ram and also increases the
effective amount of memory availiable to userspace by about 12%.

Using the default compcache size of 25% of RAM I was not able to use
the ubiquity installer on the last alpha of the Ubuntu Live CD in a
128MB machine. I haven't tried the beta, or Xubuntu, but the LiveCD
install doesn't load Gnome so I wouldn't imagine there would be any
difference. Increasing the compcache size to 100% by swapping on four
ramzswap partions of ram fixed this. 100% of RAM is reasonable because
assuming a 2:1 compression ratio this means that compcache will use up
to 50% of RAM before triggering the OOM killer (and using 50% of ram
is probably better than triggering an OOM kill during an install). I
tried to get more precise figures on how much ramzswap was needed to
get a reliable install but I came across various difficulty in
generating figures and benchmarks such as: lack of realistic 128MB era
hardware to test on*, installs that work despite the OOM killer being
triggered (e.g taking out pulseaudio). For example I with 75% I
appeared to be able to install successfully, but the OOM killer was
triggered.

However, if
1) We still want to support 128MB Xubuntu ubiquity installs, and
2) We are still having trouble with 128MB RAM installs at the last minute

Then tuning the size of Ramzswap/compcache to 100% seems like the
simplest way of doing this. It may be slow on 128MB era hardware (it
is mildly sluggish in a VM), but it should work. Additionally unless
the user has some other form of swap active while running ubiquity, it
shouldn't make the situation worse as compcache only allocates memory
as needed.

One difficulty: tuning Ramzswap requires the rzcontrol utility, but
this was not included in the LiveCD. It would be trivial to modify the
ramzswap kernel module source to default to 100%, but that would be
ugly in a number of ways.


[*] The only old machine I have that still works is a G3 powermac that
can't boot DVDs/oversized cds, and I haven't been able to use the beta
due to https://bugs.launchpad.net/bugs/447735.

-- 
John C. McCabe-Dansted



More information about the xubuntu-devel mailing list