For more information about the paging file (and most other memory, caching,
etc. information), I strongly recommend Inside Windows 2000
(
www.sysinternals.com).
A kernel discussion group is @ microsoft.public.win32.programmer.kernel. I
also recommend the WinDbg group as well.
As to the second question, the Memory Manager just writes to PageX, wherever
that page happens to be mapped to. The big perf gains come from separating
high I/O resources (e.g. Exchange/SQL Transaction Logs) from the page file.
Having the paging file on multiple spindles will generally help, but the
degree of performance gain is highly dependent on what the application(s)
are actually doing and the resources available to them (i.e. Large RAM
reserves with an app that batches its memory access will have little or no
perf gain with a multiple page file config vs. a RAM constrained config with
an app that is 'random' in allocations and tends to have large sparse areas
would see more perf gain).
Generally speaking it isn't the PageFile writes that are perf killers (they
are almost always done in the background by a utility thread), it is the
page reads that need to be optimized. A page read generally must complete
before whatever needed the information can continue, so to optimize for that
you would generally not want your writes to be 'random' b/c then you would
lose the read-ahead (harware and software) and other optimizations that help
w/the page-in perf.
For best perf w/a paging file, it is generally best to put it on a mirrored
partition. With 2 drives, create 2 partitions on each drive. Mirror the
first 2 partitions on each. Use the mirrored partitions for the OS and
paging file, the other 2 partitions for whatever data you want (you could
also combine these to create a larger volume). This will allow the
controller to make writes (and reads) from the disk with the smallest queue.
The downside is, of course, that the storage efficiency (overhead vs usable
bytes) is significantly lower than just creating a 2nd page file.
Pat