Man Linux: Main Page and Category List

NAME

       swapspace - dynamically manage swap space

SYNOPSIS

       swapspace [options]

DESCRIPTION

       Monitor  memory and swap usage and allocate or deallocate swap space as
       needed.  This program aims to reduce or  do  away  with  the  need  for
       swapfiles.

       swapspace  can  be  built  in two configurations: the full-featured one
       (which is now the default) or the unconfigurable version.   The  latter
       only  accepts  a  few options, disabling all features that are probably
       only relevant to developers.  At some point in the feature, when enough
       confidence  exists that the various configuration parameters are either
       good  enough  for  everyone  or  have  been   made   unnecessary,   the
       unconfigurable build may become the default.

       The  following options are accepted in the unconfigurable version.  All
       of these have more extensive equivalents in the full-featured  version.

       -d     Quietly ignored; always enabled in unconfigurable version.

       -e     Attempt  to  free up all allocated swap files.  Returns 0 if all
              files were successfully erased, or 1 otherwise.

       -h     Display usage information and exit.

       -p     Write process identifier to /var/lib/swapspace.pid when starting
              (and  delete  it  when  shutting  down).   The  file’s  name and
              location cannot be changed in the unconfigurable version.

       -q     Quietly ignored; always enabled in unconfigurable version.

       -v     Quietly ignored; always enabled in unconfigurable version.

       -V     Print program version information and exit.

       In most cases, these should be the only options  of  any  interest  for
       normal  use  of  the  program.   All  files  are  kept in their default
       locations, which were chosen in accordance with  the  Linux  Filesystem
       Hierarchy  Standard,  and  algorithmic  parameters are left at defaults
       that have been tested to work well for a wide range of uses.

       The full-featured configuration accepts more options, as listed  below.
       The  long-format  options  may  also  be specified, without the leading
       "--", in a configuration file.  By default, /etc/swapspace.conf is read
       on startup.

       -a duration, --cooldown=duration
              If  disk  space  runs  out  when allocating a swapfile, wait for
              duration  iterations  (of  roughly  one  second   each)   before
              considering  allocating  one again; or if space doesn’t run out,
              wait for duration  iterations  before  considering  deallocating
              uneeded  swapfiles.   This  stabilizes the daemon’s behaviour in
              the face of varying memory requirements.

       -B p, --buffer_elasticity=p
              Consider p% of system-allocated I/O buffers to be available  for
              other use.

       -c file, --configfile=file
              Read file instead of the default configuration file.

       -C p, --cache_elasticity=p
              Consider p% of filesystem cache to be available for other use.

       -d, --daemon
              Run  quietly  in  the background.  This is the normal way to run
              the program.

       -e, --erase
              Attempt to free up all allocated swap files.  Returns 0  if  all
              files were successfully erased, or 1 otherwise.

       -f p, --freetarget=p
              Aim to have p% of combined memory and swap space free.

       -h, --help
              Display usage information and exit.

       -l p, --lower_freelimit=p
              Try  to keep at least p% of combined memory and swap space free;
              if less than p percent is available, attempt  to  allocate  more
              swap space.

       -M size, --max_swapsize=size
              Never  let  swapfiles  become larger than size bytes.  You don’t
              normally need to set this; the daemon will learn when  its  swap
              files get too big and adapt automatically.

       -m size, --min_swapsize=size
              Never  bother to allocate any swapfiles smaller than size bytes.
              There should be no need  to  change  this  variable  except  for
              testing.

       -p [file], --pidfile[=file]
              Write  process identifier to file when starting (and delete file
              when shutting down); defaults to /var/lib/swapspace.pid.

       -P, --paranoid
              Overwrite retired swapfiles  before  they  are  deleted,  so  an
              attacker  who  obtains  access to the disk without going through
              the system’s access  control  checks  (e.g.  by  unplugging  the
              computer  and  then  rebooting  from  a  CD) cannot retrieve the
              swapped data.  There is no guarantee that this will work, and it
              will  not  thwart  advanced forensic analysis using custom-built
              hardware; but it may reduce the  chances  of  an  attacker  with
              physical  access  to the system obtaining passwords, credit card
              numbers etc.  The program will attempt to free up all  allocated
              swapfiles  on  termination  and  return  a success code for this
              cleanup, as if the --erase had been specified.

       Caution
              The --paranoid  option  will  slow  down  swap  file  management
              considerably.   In particular, stopping the daemon will cause it
              to try and deallocate (and wipe) all swapfiles it  has  created,
              and  they  will  not be available for swapping immediately after
              reboot.

       -q, --quiet
              Suppress informational output.

       -s dir, --swappath=dir
              Create swapfiles in directory dir instead  of  default  location
              /var/lib/swapspace.   This  location  must be accessible to root
              only; allowing anyone else to write to this  directory  or  even
              read swapped data would be a serious security breach.

       -u p, --upper_freelimit=p
              Avoid  having  more  than  p%  of combined memory and swap space
              free; if this percentage is exceeded,  try  to  deallocate  swap
              space.

       -v, --verbose
              Log  debug  information to system log and/or standard output, as
              appropriate.

       -V, --version
              Print program version information and exit.

       Numbers may be suffixed with k,  m,  g  or  t  to  indicate  kilobytes,
       megabytes, gigabytes or terabytes respectively: 1k means 1024 bytes, 1m
       means 1024 kilobytes, 4g means 4096 megabytes and so on.

       Timings are measured in iterations, which should typically  last  about
       one  second  each.  No pretense of accurate timing is made; this is not
       the kind of program you would run on a hard-realtime system.

       Any messages are sent to the system daemon log; it is also  printed  to
       the  standard output/error streams (as appropriate based on the urgency
       of each individual message) if available.

SIGNALS

       State information can be logged by  sending  the  program  the  SIGUSR1
       signal  (user-defined  signal  1).   Not  all  of this information will
       always be current; most of the information  internal  to  swapspace  is
       only updated when needed.

       Sending  the  SIGUSR2  signal  will make the program free all swapfiles
       that are not currently needed, and abstain from allocating any more for
       the  timespan of one cooldown period.  The program will behave as if it
       just tried to create a swapfile but ran out of disk space.

FILES

         /etc/init.d/swapspace    /etc/swapspace.conf    /usr/sbin/swapspace
       /var/lib/swapspace/

AUTHOR

       Written by Jeroen T. Vermeulen

BUGS

       Please  report  any  bugs  you  may  find  on  the  project website at:
       http://thaiopensource.org/development/swapspace/

COPYRIGHT

       Copyright © 2005 Software Industry Promotion Agency (SIPA), Thailand
       This is free software; see the source for copying conditions.  There is
       no warranty whatsoever.  Use entirely at your own risk.

SEE ALSO

       kill(1),   mkswap(8),   signal(7),  swapon(2),  swapoff(2),  swapon(8),
       swapoff(8)