UNIX performs memory management
in a very 'traditional' way - programs are
loaded into memory in pages until the working
set is established, and when there is a
demand for more memory space, pages which
have been least recently used are simply
discarded if they have not been altered,
or written back to disk if they have. Different
UNIX versions have variations on this basic
pattern, but most of them keep to this strategy
right up to the point where memory is around
90% full or higher. At that stage, what
is known as 'Desperation Swapping' can occur.
ALL of the memory pages for a process get
written out to the swap space on disk. This
obviously brings the process in question
to a complete stop, but equally seriously
can create an I/O bottleneck on the swap
device. If there are also filesystems being
used by other processes on that disk, these
processes can be seriously affected, and
performance can generally degrade very badly.
If you have Athene check the 'Swapping
Overview' table in Athene Analyst for consistent
swap outs being performed. Another measurement
to check is the 'Processes Waiting' column
in the 'CPU Overview' table. This is a measure
of the number of processes unable to run
because they are swapped out. If this value
is consistently non-zero, it may be an indication
of Desperation Swapping.
Next
UNIX Tip |