27 marzo 2012

Definiendo la partición de Swap en GNU/Linux

Normalmente al instalar GNU/Linux lo recomendado es crear una partición de Swap. Swap significa intercambio (del inglés "intercambiar".) y es un espacio usado como memoria adicional pero que está en el disco rígido; que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física, por lo tanto sólo te será de utilidad si crees que te va a faltar RAM para tu uso diario.

Según Linux Disk Partitioning Guide el orden de creación de las particiones tiene su importancia porque la zona exterior (los cilindros más externos) de los discos rígidos giran a mayor velocidad que los más internos. Por lo tanto, sería lógico colocar en la zona exterior del disco las particiones que más se vayan a utilizar y en la más interior las que menos. En un sistema doméstico, en teoría las particiones que más se usan son la partición raíz y la home, y estas deberían ser las primeras.
También hay quien opina que la partición de swap debe colocarse en la zona más rápida del disco para que cuando se use responda de la mejor manera posible. Esto significaría colocar la partición de swap la primera. Pero por otra parte, lo mejor es no tener que usar nunca la partición de swap. Además, hay quien dice que el acceso más rápido está en mitad del disco porque las cabezas tienen que desplazarse menos que cuando lo hacen a las zonas exteriores o interiores. ¿Conclusión? Crealas en el orden que consideres más conveniente. Podes no tener partición de swap, o crearla tan grande como quieras.

De todas formas, podes crear y borrar swaps: en /proc/swaps vas a ver una lista de las activas, y con swapon y swapoff las podes modificar como quieras. Si probas a hacer un cat o un strings a alguna swap, vas a ver cosas muy interesantes (como quizas la contraseña de root :-) ). Recorda que una diferencia entre swap y RAM, es que la RAM se vacía al apagar el equipo, la swap no.

¿Cómo crear una swap
Muy fácil, voy a dar el ejemplo de crear un archivo vacío (de 1GB como ejemplo) y usarla de swap con:

root@scatha:~# dd if=/dev/zero of=/archivoswap bs=1024 count=1G

y lo convertis en swap con:

root@scatha:~# mkswap /archivoswap

y despues lo activas con:

root@scatha:~# swapon /archivoswap
Si haces free o cat /proc/swaps podes comprobarlo. Recorda modificar el /etc/fstab.conf para que se monte al inicio la próxima vez.

/archivoswap none swap sw 0 0

El kernel de GNU/Linux a partir del 2.6.x añade un parámetro llamado swappiness que permiten a los administradores ajustar la forma en swaps de GNU/Linux. Es un número de 0 a 100. En esencia, los valores más altos conducen a más páginas que se intercambian, y los valores más bajos conducen a más aplicaciones que se están guardados en la memoria, incluso si están inactivas.
El valor predeterminado para swappiness es de 60. Podes alterar temporalmente (hasta el siguiente reinicio) escribiendo como root:

root@scatha:~# echo 50> /proc/sys/vm/swappiness

Si no sabes que es lo que estas haciendo, obviamente no deberias cambiar nada.
Que te diviertas!

No hay comentarios: