Usando un área de swap

El área de swap es activada con el comando swapon. Este comando le informa al kernel que el espacio de swap ya puede ser utilizado. La ruta del área de swap es pasada como argumento, por lo tanto para comenzar a paginar sobre un archivo de swap temporario, se podría ejecutar el comando de la siguiente forma:

$ swapon /extra-swap
$ 

Las áreas de swap pueden ser utilizadas automáticamente, incluyendo a ellas en el archivo /etc/fstab:

/dev/hda8        none swap        sw     0     0 /swapfile        none        swap        sw     0 0

Los scripts de arranques ejecutarán el comando swapon -a, el cual dará inicio al proceso de paginación de todos los espacios de swaps listados en el archivo /etc/fstab, de otro modo el comando swapon es usualmente usado solo cuando un espacio extra de swap es necesario.

Puede ser monitoreado el uso del área de swap con el comando free. Éste indicará el tamaño total de espacio swap utilizado.

$ free

total       used       free     shared   buffers
Mem:         15152      14896        256      12404       2528
-/+ buffers: 12368       2784
Swap:        32452       6684      25768

$ 

La primera linea de la salida (Mem:) muestra la memoria física. La columna "total" muestra la memoria física usada por el kernel, el cual usualmente está cerca de un megabyte. La columna "used" muestra el tamaño de memoria usado. La columna "free" muestra la cantidad de memoria que no está siendo usada. La columna "shared" muestra la cantidad de memoria que está siendo compartida entre varios procesos; la mayor y la menor. La columna "buffer" muestra el tamaño actual del cache de buffer en disco.

T La última linea (Swap:) muestra la misma información para el espacio de swap. Si esta linea son todos ceros, el espacio de swap no está activado.

T La misma información está disponible a través del comando top, o usando el archivo /proc/meminfo del sistema de archivos proc. Este es en realidad difícil de leer si se quiere información sobre el uso de una determinada área de swap.

Un área de swap puede ser desactivada con el comando swapoff. Generalmente esto no es necesario, excepto para las áreas de swap temporales. Cualquier página que están haciendo uso del área de swap, son llevadas primero a la memoria. Si no hay suficiente memoria física para alojarlas, serán movidas entonces a otra área de swap. Si no hay suficiente memoria virtual para almacenar todas estas páginas el sistema Linux sufrirá una degradación de desempeño, durante la cual estará inestable durante un tiempo hasta que logre recuperarse. Por este motivo se deberá chequear (ej. con free) que haya suficiente memoria disponible antes de remover un área de swap.

Todas las áreas de swap que fueron activadas automáticamente con el comando swapon -a pueden ser removidas con el comando swapoff -a; este busca en el archivo /etc/fstab para encontrar cuales son las áreas a remover. Cualquier espacio de swap activado manualmente permanecerá aun en uso.

En muchas ocasiones una gran porción de espacio swap puede estar ocupado a pesar de que hay una gran cantidad de memoria física libre. Esto suele ocurrir en situaciones en la que fue necesario paginar una porción de memoria al área de swap, pero en otro instante un proceso que ocupa mucha memoria física finaliza y libera dicha memoria. Los datos que están en el área de swap no son llevados automáticamente a memoria hasta que esto no sea necesario, por lo tanto la memoria puede seguir libre durante un largo tiempo. No hay motivos para preocuparse por esta situación pero es bueno saber que esto puede ocurrir.