Subject: Re: Swapping
To: None <jay@qabalah.cac.psu.edu>
From: Lennart Augustsson <augustss@cs.chalmers.se>
List: current-users
Date: 10/12/1994 15:49:58
> I think that you are stuck in a terminology problem. As I understand it,
> most everybody talks about "swapping" (paging out an entire process to
> the disk, and bring in another full process) when they really mean
> "paging" (moving one or more pages to or from swap-space).
When I said swapping I meant moving an entire process to disk
and then bring in another, and not paging.

> In tight memory situations the paging algorithm will fail, because a
> ...
That's exactly what's happening.  I want NetBSD to start swapping
because it is behaving very poorly when it's paging.

Some more information about my test:
The test is running a compiler that requires about 10M of
memory.  The machine has 16M of physical memory.  You then
get these figures:
	 152.70u  31.84s    3:33.70 86.3%
If you instead run two of these at the same time you get
	 156.61u  61.52s 1:31:23.59  3.9%
	 156.93u  62.51s 1:32:19.86  3.9%

This is 25 times slower!!!  With optimal scheduling (first
one compilation, then the next) it would be 2 times slower.
But the OS insists on trying to keep both processes in memory
all the time which means that they are both memory starved
and page like crazy - making very little progress.

What is needed is the bold SWAP decision to move one of them out
to disk and let it stay there for a while.  *BSD used to be able
to do this pretty well, but that code seems to be #ifdef'ed away
in NetBSD.

The same figures for SunOS 4.1.3:
1:	 654.85u 114.68s   14:15.93 89.9%
2:	 719.68u 324.81s 1:16:09.99 22.8%
	 718.91u 325.39s 1:16:10.37 22.8%
This is a slower machine, but you can see that the factor is
only 5.  Not good, but much better.

If I get some spare time I might try enabling the swap code
in the kernel.

	-- Lennart