dphys-swapfile - set up, mount/unmount, and delete an swap
file
dphys-swapfile
setup|install|swapon|swapoff|uninstall
dphys-swapfile computes the size for an optimal swap file (and
resizes an existing swap file if necessary), mounts an swap file, unmounts
it, and deletes it it is not wanted any more.
There is only one parameter, an command, which can be either of
these:
- setup
- and install Both tell dphys-swapfile to compute the optimal swap
file size and (re-)generate an fitting swap file. Default it 2 times RAM
size. This can be called at boot time, so the file allways stays the right
size for current RAM, or run by hand whenever RAM size has changed.
- swapon
- and swapoff These run the swapon and swapoff commands
on the swapfile. Note that direct swapon/off from /etc/fstab is not
possible, as that is (at least on Debian) done in the same script that
mounts /var (which is where the swap file most likely resides). And we
need to do our setup between those actions. So we pass up on
/etc/fstab, and do our own swapon/off here.
- uninstall
- Gets rid of an unwanted swap file, reclaiming its disk space.
The config file /etc/dphys-swapfile allows the user to set
up the working environment for dphys-swapfile.
This config file is a sh script fragment full of assignments,
which is sourced. Standard sh syntax rules apply. Assignments are:
- CONF_SWAPFILE
- Set where the swap file should be placed. Defaults to /var/swap. It is
unlikely that you will need to change this, unless you have very strange
partitioning, and then you will most likely be using an swap partition
anyway.
- CONF_SWAPSIZE
- Set size to this absolute value, in MBytes. Leaving this empty (which is
the Default) uses an computed value as size instead. This is unlikely to
ever be needed, unless in some strange diskspace situations. Note, that
swap enabled and size smaller than RAM may causes kernal-internal VM
troubles on some kernels/systems.
- CONF_SWAPFACTOR
- Set size to computed value. Uses this value times RAM size. It so
dynamically adapts to RAM size, guarantees enough swap on large RAM,
without going into excess diskspace on small RAM (and disk?) systems.
Defaults to 2, which gives swap size = 2 * RAM size.
- CONF_MAXDISK_PCT
- Sets the maximal percentage of the remaining disk space which may be used
for the swap file. Takes potentially existing dphys-swapfile swap files
into account, i.e. adds their size to the available disk space before
calculating the percentage. Defaults to 50. Set it to the empty string to
disable this check.
- CONF_MAXSWAP
- Set size restriction of maximal computed and absolute(!) values, in
MBytes. Defaults to 2048 which was a former 32bit kernel limit for the
swapfile size and is now a limit to prevent unusually and senselessly big
swap files on systems with a lot of RAM.
- /etc/dphys-swapfile
- user config
- $CONF_SWAPFILE
- the swap file, target of the whole action (defaults to /var/swap)
dphys-swapfile is usually run at system startup and shutdown from
an /etc/init.d (or /etc/rc.d) script, such as this (minimal) one:
#!/bin/sh
# /etc/init.d/dphys-swapfile - automatically set up an swapfile
# author franklin, last modification 2004.06.04
# This script is copyright ETH Zuerich Physics Departement,
# use under either modified/non-advertising BSD or GPL license
case "$1" in
start)
/sbin/dphys-swapfile setup
/sbin/dphys-swapfile swapon
;;
stop)
/sbin/dphys-swapfile swapoff
;;
esac
exit 0
If an sysadmin wants to have the swapfile in another place, say
/var/tmp/swap, he can use:
In /etc/dphys-swapfile:
CONF_SWAPFILE=/var/tmp/swap
neil@franklin.ch, http://neil.franklin.ch/