Re: Slow swapon for big (12GB) swap

From: Grzegorz Kulewski
Date: Mon Apr 10 2006 - 06:17:58 EST


On Mon, 10 Apr 2006, Helge Hafting wrote:
Grzegorz Kulewski wrote:

Hi,

I am using big swap here (as a backing for potentially huge tmpfs). And I
wonder why swapon on such big (like 12GB) swap takes about 7 minutes
(continuous disk IO). Is this expected? Why it is like that? Can I do
anything to speed it up? Or maybe remove it into the background with low
priority or something like that?

I don't know why it is slow. But you can certainly do something like:

nice swapon /dev/yourdisk &

I wouldn't be so sure about this because it is possible that the real work is done by some kernel thread not the process...


Then it will happen in the background and with low priority. Of course,
you can't start filling your tmpfs until this completes.

That is no problem.


I don't think tmpfs+swap was made with this sort of use in mind,
so you may want to test the performance when you fill up such a
tmpfs, and compare to the performance of /tmp on a 12GB
ordinary filesystem. It seems to me that the advantage of /tmp on
tmpfs is lost completely if most of it has to be written to disk anyway.
(Ordinary filesystems are cached too, the "tmpfs advantage" is that
truly temporary (but possibly long-lived) files are never written
to disk _if_ you have enough memory. /tmp on a plain filesystem
is just as fast due to caching, but may delay other use of the
disk as the ordinary filesystem writes stuff out so it will be
saved for the future.)

Well - I use it for /var/tmp for compiling packages in Gentoo. Most compiles use < 1MB of it and it is *much* faster that way because immendiate data never touch disk. And the disk stays idle the whole time so can be put to sleep and should live longer.

There are some compiles that take < 600MB and they are still done in RAM. And there are < 4 packages in this system that need extreeme amounts of disk (like openoffice for example). They of course are not done in RAM but it looks like they are still rather fast (but I don't have any meansurements). And the disk is still idle or nearly idle for the most part of these 8hs. Time shows that 6,8h is spent in userspace and I think it is pretty good.

So, to sum up, I need it in RAM and for the most part of the time (like 99,99% at least) it is not filled more than 60MB. I could probably make it smaller and change to disk when such large package is going to be compiled but this will require changing Gentoo scripts or doing things manually and I want to avoid that.


Thanks,

Grzegorz Kulewski

-
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/