Podemos utilizar dos métodos para prescindir del particionamiento de la Swap y crear manualmente un archivo dinámico de asignación a tal efecto. El primer método no es muy difícil, y el segundo es pan comido.
Para realizar el primero, lo primero (valga la redundancia) es saber que tamaño queremos asignar en kiloByte a ese archivo.
Supongamos que queremos asignarle 2GB a la memoria de intercambio. Entonces realizaremos la conversión:
(2 GB * 1024 MB) * 1024 kb = 2097152 kiloByte
Table de equivalencias:
1 Byte = 8 bits
1 kiloByte ( kb ) = 1.024 Bytes
1 megaByte (Mb) = 1 024 kb = 1.048.576 Bytes
1 gigaByte (Gb) = 1 024 Mb = 1.073.741.824 Bytes
1 teraByte (Tb) = 1 024 Gb = 1.099.511.627.776 Bytes
1 petaByte (Pb) = 1 024 Tb = 1.125.899.906.842.624 Bytes
1 kiloByte ( kb ) = 1.024 Bytes
1 megaByte (Mb) = 1 024 kb = 1.048.576 Bytes
1 gigaByte (Gb) = 1 024 Mb = 1.073.741.824 Bytes
1 teraByte (Tb) = 1 024 Gb = 1.099.511.627.776 Bytes
1 petaByte (Pb) = 1 024 Tb = 1.125.899.906.842.624 Bytes
Método de conversión:
De Bits a Bytes, se divide entre 8
De Bytes a KB, se divide entre 1024
De KB a MB, se divide entre 1024
De MB a GB, se divide entre 1024
De GB a TB, se divide entre 1024
De Bytes a KB, se divide entre 1024
De KB a MB, se divide entre 1024
De MB a GB, se divide entre 1024
De GB a TB, se divide entre 1024
Lógicamente, si lo queremos es hacerlo a la inversa, entonces tendremos que multiplicar.
Sigamos...
Para averiguar la Swap activa corremos este comando:
- cat /proc/swaps
- free
- sudo swapoff -a
Nota: si quisiéramos volverla a activar pondríamos el siguiente: sudo swapon -a
Bueno sabiendo ya el tamaño que queremos darle, lo siguiente es asignar dicho espacio en un archivo a tal efecto. El nombre de ese archivo puede ser el que se quiera (al igual que la ruta) pero utilizaremos swapfl y la ubicación raíz, para mayor compresión e identificación. Para conseguir esto pondremos lo siguiente en un termial:
- sudo dd if=/dev/zero of=/swapfl bs=1024 count=2097152
Seguidamente construimos el archivo swapfl a tal efecto así:
- sudo mkswap /swapfl
- sudo swapon /swapfl
Si queremos entonces mantener esta situación, es decir prescindir de la Swap física, o más concretamente recuperar el espacio particionado hasta ahora a tal efecto y trabajar desde este momento con este sistema dinámico de Swap, no nos queda otra que editar el archivo:
- sudo pluma /etc/fstab
UUID=34f312e4-5ad2-43b0-8209-5ceac911bd5c swap swap sw 0 0
La eliminamos o comentamos:
#UUID=34f312e4-5ad2-43b0-8209-5ceac911bd5c swap swap sw 0 0
Y añadimos esta otra:
/swapfl swap swap sw 0 0
Pues ya está. A partir de este momento la Swap estará ubicada en el archivo swap y funcionará tan bien de forma dinámica como con la Swap ubicada en una particion a parte.
Queda por explicar cómo recuperar ahora el espacio que hay particionado y que pertenecía a la Swap.
El proceder es bien sencillo. Arrancamos el sistema con cualquier Live CD, abrimos Gparted seleccionamos la partición a la que teníamos asignada la Swap y la eliminamos. Luego podemos redimensionar cualquiera de las particiones inmediatamente contiguas a ésta, para que adquiera ese espacio ahora sin utilizar. Hay que saber, que el redimensionamiento de una partición no es causa de perdida de datos.
El presente artículo más bien ha venido colación, a causa de un comentario que me hizo el usuario es3a2. Éste me comentó que había un proyecto a tal efecto (sustitución de la partición Swap), y ciertamente yo no lo conocía (¡se me deben estar escapando tantas cosas!) pero no tardé en conocerlo luego de saber de su existencia. Gracias es3a2 por la información.
La verdad que lo primero que me sorprendió es que no es un proyecto nada reciente del que yo no tuviera ni idea. A decir verdad , la Swap tampoco es algo de lo que me he preocupado mucho. Tampoco es que este proyecto ofrezca algo revolucionario, pero lo que si hace con tan sólo su instalación es ahorrarnos todos los pasos anteriormente explicados.
Por esto he querido empezar (por la que ya muchos conocemos) la forma manual de hacerlo. Para luego decir que gracias al proyecto Dphys-Swapfiley con tan solo la instalación de un paquete, realizará automáticamente y sin mediar nuestra intervención la creación del archivo dinámico Swap optimo.
Este paquete se encuentra en los repositorios. Y es el segundo método de creación de una Swap dinámica. Para su instalación:
- sudo apt-get install dphys-swapfile
El paquete anterior se encarga de instalar todo lo necesario para asignar, crear y activar la la memoria de intercambio dinámica.
Como digo, esta utilidad calcula por nosotros automáticamente en el momento de su instalación todo lo necesario para la creación del archivo Swap. Pero si queremos modificar algunos parámetros, como son, tamaño de asignación, ubicación, nombre, etc editaremos para este menester el siguiente archivo:
- sudo pluma /sbin/dphys-swapfile
Las opciones más destacables y modificables de este archivo son la siguientes:
Ubicación del archivo de intercambio, esta es la opción predeterminada:CONF_SWAPFILE=/var/swap
Nota: En el caso de utilizar el programa Systemback para realizar puntos de restauración y Sistemas Live, es recomendable modificar esta ruta, como por ejemplo utilizar esta otra /swap ya que de lo contrario SystemBack tendrá problema para eliminar de su carpeta temporal de trabajo el archivo /var/swap.
Establecer el tamaño de valor absoluto, dejar vacía (por defecto), de este modo utilizará el valor de cálculo:
CONF_SWAPSIZE=
Establecer el tamaño del valor de cálculo, este tamaño es tantas veces la memoria RAM, y se adapta dinámicamente:
CONF_SWAPFACTOR=2
Limita el tamaño absoluto. Este límite máximo se puede configurar sin restricción alguna, pero hay que tener mucho cuidado en este caso con las particiones llenas:
CONF_MAXSWAP=2048
Algunos parámetros interesantes si utilizamos dphys-swapfile
Si por ejemplo queremos modificar los valores de archivo utilizado a tal efecto. Lo primeroque tenemos que hacer una vez modificado lo que se requiera es parar la memoria de intercambio que se está ejecutando;- sudo dphys-swapfile swapoff
- sudo swapoff -a
- sudo /etc/init.d/dphys-swapfile start
- sudo /etc/init.d/dphys-swapfile stop
- sudo dphys-swapfile swapon
- 0 (no se hará uso alguno de la memoria de intercambio)
- 100 (se hará el mayor uso posible de la memoria de intercambio)
El valor por defecto es 60
Para saber que valor tienes asignado tan sólo tienes que ejecutar este comando en un terminal:
- cat /proc/sys/vm/swappiness
- sudo sysctl -w vm.swappiness=(valor)
sudo sysctl -w vm.swappiness=90
Bueno pues ya estamos concluyendo.
Si el primer método te parece difícil, ahora no tienes escusa para decidirte a probar el segundo. Como puedes apreciar, utilices el particionado, el primero, o el segundo, el funcionamiento de la Swap es practicamente el mismo:
En cualquier caso tienes que tener en cuenta que la recuperación del espacio particionado que tenías asignado a la memoria de intercambio, tendrás que recuperarlo manualmente como se explicó en el primer método.
Más información:
No hay comentarios:
Publicar un comentario