LinuxCommandLibrary

dphys-swapfile

Manage the swap file on Debian-based Linux systems.

TLDR

Disable the swap file

$ dphys-swapfile swapoff
copy


Enable the swap file
$ dphys-swapfile swapon
copy


Create a new swap file
$ dphys-swapfile setup
copy

SYNOPSIS

dphys-swapfile setup|install|swapon|swapoff|uninstall

DESCRIPTION

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.

OPTIONS

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.

CONFIG

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.

FILES

/etc/dphys-swapfile

user config

$CONF_SWAPFILE

the swap file, target of the whole action (defaults to /var/swap)

EXAMPLES

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

AUTHOR

neil@franklin.ch, http://neil.franklin.ch/

Copied to clipboard