Antes que nada debo pedirles disculpas por la poca regularidad de mis posts últimamente. Luego de rendir el examen más largo de mi carrera, que me tomó todo el verano preparar, me quedaron muchas tareas pendientes y estoy tratando de ponerme al día. Espero que sepan disculpar.
Hoy les traigo algunos tips para darle un “respiro” a nuestras máquinas cuando tienen un consumo excesivo de RAM, aumentando un poco la swap de Linux. Esto no va a solucionar todos nuestros problemas (la swap es en definitiva memoria en el disco, cuya lectura es mucho más lenta que la RAM), pero puede darnos una pequeña ayudita para superar un momento de mucho uso.
Concretamente vamos a ver dos casos: crear y montar un archivo swap, y hacer lo propio con un pendrive usando swapboost.
Crear un archivo swap
Comenzaremos por este ejemplo que es el más sencillo y el más explicativo. Lo primero que debemos hacer es crear un archivo del tamaño que vamos a reservar para la swap con dd. Por ejemplo, para crear uno de 512 MB haremos:
dd if=/dev/zero of=/tmp/swapfile bs=1M count=512
Luego debemos crear un swapfile vacío con mkswap.
mkswap /tmp/swapfile
Por último montamos el archivo con swapon.
swapon /tmp/swapfile
Ahora podemos ver el archivo montado:
swapon -s Filename Type Size Used Priority /dev/sdb6 partition 497972 84032 -1 /tmp/swapfile file 524280 0 -2
Vemos en la última línea el archivo con 512 MB de swap y una prioridad secundaria respecto a nuestra partición swap.
Swapboost: crear swap en un flashdrive USB
Swapboost es un sencillo script en BASH que nos permite montar el espacio disponible de un dispositivo de almacenamiento USB como swap en forma sencilla. El procedimiento es sencillo.
Descargamos el script y le damos permisos de ejecución.
wget http://zelut.org/projects/misc/swapboost.sh chmod +x swapboost.sh
Insertamos el pendrive y lo montamos (esto puede hacerse con mount o si estamos en un entorno gráfico como gnome o KDE, permitiéndo que éstos lo monten automáticamente), y ejecutamos:
./swapboost.sh -n
para crear una nueva swap en el espacio libre del USB. Ahora podemos revisar su uso con:
swapon -s
Por último, para borrar la swap creada y desmontar el USB ponemos:
./swapboost.sh -d
Más información en Ubuntu Tutorials [en inglés].
Aunque no he probado el script, la perdida de performance a la hora de usar swap en un usb tiene que ser brutal. ¿Alguien lo ha probado?
No lo probé, pero tené en cuenta que el objetivo no es tanto mejorar la performance de la máquina sino darle cierto respiro en momentos críticos.
Igual tené en cuenta que un pendrive al tener un SSD tiene tiempos de lectura mucho más rápidos que los de un disco rígido común, aunque por ahí los de escritura sean un poco más lentos.
http://en.wikipedia.org/wiki/Solid-state_drive
Esto tambien sirve para los VPS de DWH?
Jeje no por dos razones… primero porque no creo que vayas a viajar a EUA a enchufar tu USB y en segundo porque el tipo de virtualización no admite manejo de swap a nivel de cada VPS.