Use the free command to make sure all memory and swap is
recognized.
Make sure you don't have other system services that are hogging memory or
CPU. Use top or ps to see what is
running, and disable anything you can to free up memory and CPU. Again, a
default installation may have many things running that you don't really
need.
Make sure you have plenty of swap space. With low, or even modest, memory,
swap is all the more important. A general rule of thumb is twice as much swap
as physical memory. With low memory, this is not enough. Try four times real
memory. Or more. If you can't create more swap partitions, see the
mkswap man page about creating swap files instead.
Constant disk churning is a symptom of insufficient swap space, and the
system will be slowed as a result, sometimes drastically. Or, possibly this
may be the symptom of a poorly behaved kernel VM system (try another kernel
in this case).
Drive performance is important for swap performance. Make sure your drive has
DMA enabled if the drive supports it, and is otherwise tuned and performing
up to snuff. See the hdparm man page. Slow drive + slow
card + low memory = slow system.
Don't use KDE or GNOME
if memory is tight. These both require substantial memory, and are not
required to just run X. Think of these as
usability enhancements. 32M probably may not be enough. 64M may be decent,
depending on what other applications are being used, and other variables. 128M
should be adequate in most situations. 256M or more to
be comfortable. File Managers like Nautilus and
gmc can also be memory hungry.
Use a lightweight window manger. WindowMaker,
BlackBox, IceWM,
fvwm (and variants),
XFce, all have reputations of performing well with
low memory. There are surely others as well. Experiment.
fvwm is generally considered the lightest of the
light.
A very nice desktop is still very possible even without
KDE or GNOME. In fact,
most KDE and GNOME
applications can still be used even if KDE and
GNOME are not running themselves (assuming the
right libs are installed).
Don't use fancy themes or backgrounds. Plain and simple is easier on
resources. Use a solid color background. Avoid pixmaps or gradients for any
kind of background, including menus, title bars, etc.
Use a lesser screen size and color depth. 800x600x16 will not push
X as hard and be easier on system resources than
higher values. While a ColorDepth of 24 is preferred, you probably will not
notice the difference of 16 with the majority of applications.
Some applications require much more memory than others. Some notable hogs are
Netscape, Mozilla, office suites, and
the Gimp. Netscape is faster than
Mozilla (but not as nice).
Netscape-Navigator uses less memory than
Netscape-Communicator. Close any of these apps when not in
use. Use text browsers like lynx or w3m
wherever you can, like reading locally installed HTML documentation. Much
faster, and much less memory is required.
Also, use text based clients for mail (mutt or
pine) and news (slrn or
trn). Again, faster and much less memory is used,
and these are after all text based protocols at heart anyway.
rxvt uses less memory than xterm,
konsole or gnome-terminal.
If you run an X session for long periods of time
(like days or weeks), restart X occasionally to
free memory tied up as cache.
Disable "backing store" and "save-unders" to
reduce memory usage (performance penalty though). Check
your Window Manager's settings too. See what modules are being loaded
in the "Modules" section of XF86Config as
well. Your installation may have many unnecessary ones enabled, or ones you
can't take advantage of (e.g. "v4l", aka
"Video4Linux").
Font servers may provide a slight performance boost by off-loading font
rendering to the font server, while freeing the X server to do other things.
But, the font server will use a small additional amount of memory as well.
So, you can try it either way to see if it makes a difference.
Lastly, RAM is cheap now. Buy some ;-) A new drive too.
RAM is still just too low for X? Check out
tinyX:
http://www.superant.com/smalllinux/tinyX01.html.
Reportedly runs in as little as 4 Meg of RAM.