Subject: dynamic VM example - NT
To: None <tech-kern@netbsd.org>
From: Andrew van der Stock <ajv@greebo.net>
List: tech-kern
Date: 05/18/1999 12:58:19
Hi there,

I'm new to this list, but I do know some of you, and I've read the kernel
archives, so I'm not going in head first with foot in mouth disease.

Firstly, as a NT admin, I have to say that I always adjust the lower and
upper memory growth for NT (and now SQL 7) to figures that I can trust. NT's
dynamic page growth is not a good example of how to do it - it grows the
pagefile by just 1 MB every time it needs more room, until it gets to the
maximum limit. Every time the pagefile is grown, the logical addresses of
each and every process (and thus their pages) is remapped. On a big & busy
system, this can take a number of seconds to complete - and nothing can
happen until it's finished. So under heavy swap load, it's best to not let
NT grow. Typically, the usual guidelines are 2x actual memory for min/max
pagefile size. This way, by the time you get there, NT will be thrashing so
hard, that you're going to be in trouble anyway. Currently, according to
disk defrag in w2k, my pagefile is made up of 301 fragments.

But NT did inherit from VMS one good thing : working sets. Unlike VMS, there
is no easy way to set working set quotas. I know that many Unixes have
process limits (such as per process upper limits on pages faults/sec), but
it'd be worthwhile to have a similar idea under NetBSD, especially to
contain leaky processes.

Andrew