Re: Slab allocator . . . cache? WTF is it?

From: Doug McNaught
Date: Tue Dec 30 2003 - 18:13:51 EST


john moser <bluefoxicy@xxxxxxxxx> writes:

> I'm wondering, what IS cache? It seems to increase even when swap
> is not used, and sometimes when there's no swap partition enabled.
> It also seems to cause me to run into swap when I have ample ram
> available, assuming that cache is just some sort of cache that is
> copied from and mirrors another portion of ram for some sort of
> speed increase. It's wasteful to me, and I want to more understand
> its implimentation and its purpose, and in all honesty limit its
> impact if possible.

Short answer: cache is the use of memory to store what would otherwise
have to be read from disk, like parts of frequently used files etc.
Linux will trade off cache against other RAM needs like program memory
on an ongoing basis, and (almost always) does a really good job of it.

Don't be alarmed about going into swap somewhat in normal
operation--Linux is storing less important data on the disk to make
more room in RAM for "hot" data. Obviously, if you have hundreds of
megs in swap or it grows quickly, you may need to look at it.

> I got this RAM upgrade because I was using about 676M of RAM total,
> including swap, at peak; and now I find myself using 820M RAM at
> peak and about 750-800 continually.

That means the kernel is doing exactly what it's supposed to do. If
memory isn't needed by programs and isn't used for cache, it just goes
to waste, so Linux tries to use it for one or the other. :)

-Doug
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/