Re: [RFC] kswapd: Kernel Swapper performance

From: Rik van Riel
Date: Sat Oct 28 2006 - 17:44:20 EST


Al Boldi wrote:
One thing that has improved in 2.6, wrt 2.4, is swapper performance. And the difference isn't small either: ~5 fold increase in swapin performance.

But swapin performance still lags swapout performance by 50%, which is a bit odd, considering swapin to be a read from disk, usually faster, and swapout to be a write to disk, usually slower.

Ahhhhhh, but there's a catch...

You can queue up multiple writes, because the data you want
to write to disk is already in memory.

However, at swapin time you need to read the first bit of
data from disk, after which the program can continue, and
only when the next page fault happens you know what data
to read in next.

Linux does some swapin clustering, but there simply is no
way to know which data will be needed next.

This means reads are serialized and synchronous wrt. program
execution, while writes can overlap and be done asynchronously.

It's a miracle reads are going at 50% of the speed of writes...

Improving this ratio could possibly yield a dramatic improvement in system performance under memory load (think tmpfs/swsusp/...).

Let me know when you figure out how to look into the future.

Actually, Keir Fraser and Fay Chang came up with a cool trick.

"Operating System I/O Speculation:
How Two Invocations Are Faster Than One"

http://www.usenix.org/publications/library/proceedings/usenix03/tech/fraser.html

It is somewhat complex though...

--
Who do you trust?
The people with all the right answers?
Or the people with the right questions?
-
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/