Up: SGI admin Frequently Asked Questions (FAQ)
Next: -14- Why is there no way to set up a RAM disk under IRIX?
Previous: -12- How can I increase my swap space?
Subject:   -13- What are virtual and logical swap space? How do they
                work in IRIX 3.x, 4.0.x and 5.x?
Date: 05 Jul 1994 00:00:01 EST

  Two terms whose meanings should already be clear: Physical swap space
  is an area on disk, either a partition or (in IRIX 5.x) a swap file.
  Virtual memory is the sum of physical memory and swap space.

  IRIX 3.x accepts a memory request only if enough virtual memory is
  free. Even if a process isn't using most of the memory it requested
  (which happens often, e.g. when a large process forks and execs a
  small process, or with Fortran 77 programs which allocate all storage
  statically), its memory is unavailable to other processes until it
  exits. IRIX 3.x has no virtual or logical swap space.

  In IRIX 4.0.x, IRIX accepts every memory request, and does not
  allocate virtual memory until a process actually tries to use it.
  This allows programs which request more memory than they use to run
  with much less memory than would otherwise be required. If too many
  processes actually use their memory requests so that virtual memory
  is in danger of filling up, IRIX kills one or more processes. IRIX
  usually kills the process which is using the most virtual memory,
  which may well not be the process which most recently requested
  virtual memory.

  IRIX 5.x works like IRIX 4.0.x, but one can set the amount of virtual
  memory which IRIX is allowed to overallocate. This amount is called
  "virtual swap space". "Logical swap space" is the sum of physical and
  virtual swap. There is no virtual swap space by default, so IRIX 5.x
  behaves like IRIX 3.x. One can set virtual swap to any amount of
  memory; if it is set sufficiently high, memory requests will always
  be granted, just like IRIX 4.0.x. Using jargon retroactively, IRIX
  4.0.x has an infinite amount of virtual swap space.

  Large or infinite amounts of virtual swap space work well for many
  people, because most programs don't use all the virtual memory they
  request, at least not at once. If your programs do use all their
  virtual memory, they'll be killed and you'll see "Process killed due
  to insufficient memory/swap" messages in your SYSLOG.

  Under IRIX 4.0.x, you can only turn virtual swap off completely by
  setting the kernel variable availsmem_accounting to 1. Doing so makes
  IRIX 4.0.x behave like IRIX 3.x, allocating memory only if it is
  actually available.

  Under IRIX 5.x, you can turn virtual swap on or off by doing
  'chkconfig vswap off' or 'chkconfig vswap on', or change the size of
  virtual swap by editing /etc/config/vswap.options, and rebooting. You
  can also use 'swap -v' to do any of these things directly and without
  rebooting.

  Remember that IRIX 5.x comes with virtual swap turned off and set to
  zero.  If you were happy with IRIX 4.0.x, you should turn virtual
  swap on and set its size to a very large number. If programs are
  killed, decrease the size of virtual swap or turn it off.

  See the swap(1M) and swapctl(2) manpages for details.

Up: SGI admin Frequently Asked Questions (FAQ)
Next: -14- Why is there no way to set up a RAM disk under IRIX?
Previous: -12- How can I increase my swap space?