Re: [announce] swap mini-howto

Andrew Morton
2002-11-02T00:40:38Z

Dave Jones wrote:
>
> Might be nice to mention that using multiple swap partitions
> on different disks will 'stripe' requests across disks a-la-raid0
>

Yup.

Something I'd like to point out here: in 2.4 and earlier, swapfiles
are less robust than swap devices - the need to go and read metadata
from the filesystem made them prone to oom deadlocks allocating pages
and buffer_heads with which to perform the swapout.

That has changed in 2.5. Swapping onto a regular file has no
disadvantage wrt swapping onto a block device. The kernel does
not need to allocate any memory at all to get a swapcache page
onto disk.

Which is interesting. Because swapfiles are much easier to administer,
and much easier to stripe. Adding, removing and resizing is simplified.
Distributors of 2.6-based kernels could consider doing away with
swapdevs altogether.

If you have two disks then it is very sensible to create a swapfile on
each one and to perform an equal-priority stripe between them. This
will give the best raw swap IO bandwidth. But it could cause additional
seeking between swap and regular file data.

Dedicating an entire disk to swap will obviously reduce the seeking
problem.

But really, if your application is dependent on swap performance, you
need more RAM. Swap should be viewed as a lightweight background
optimisation to make unused pages available for other work, rather
than as a cure for an underprovisioned machine.