Mostrando entradas con la etiqueta swap. Mostrar todas las entradas
Mostrando entradas con la etiqueta swap. Mostrar todas las entradas

Empleando pagefile en GNu/Linux

Esta entrada va dedicado a toda aquella gente que viene de sistemas Windows, acostumbrada a tener un fichero de swap en disco y que lo desea seguir manteniendo en GNU/Linux.
Por defecto, cuando se instala un sistema Linux, siempre es aconsejable y muy recomendable crear un partición de tipo swap que el sistema manejará y empleará para dicha tarea de forma automática. Si tienes varias distribuciones instaladas en el mismo equipo, todas podrán compartir dicha partición, por lo que ahorrarás bastante espacio en disco.
Sin embargo, hay veces que puedes decidir no disponer de dicha partición. Por ejemplo, si tu equipo tiene mucha memoria RAM, más de 8Gb, es raro que termines usando la swap, por lo que podrás ahorrarte ese espacio de disco que nunca lo aprovecharás. Claro que siempre terminarás por hacer alguna tarea que requiera de swap, entonces en ese momento estás fastidiado y por suerte, gracias a dd, tendrás la solución al alcance del comando ;-)
La solución no es más que imitar lo que hace Windows con el fichero pagefile.sys, es decir, crear un fichero de tamaño limitado que se empleará dinámicamente de memoria swap. Para ello, y copiando el nombre empleado por Windows para dicho fichero, podemos hacer algo tal que así,
shell> dd if=/dev/zero of=/pagefile.sys bs=4k count=2048M
Con ello acabamos de crear sobre la partición raíz de nuestro sistema un fichero, pagefile.sys, de 2Gb de tamaño. A continuación tendremos que darle formato y emplearlo como memoria swap. Primeramente formateamos,
shell> mkswap /pagefile.sys
Y a continuación lo 'montamos' como memoria swap.
shell> swapon /pagefile.sys
Este sencillo truco lo tuve que usar un par de veces el mi portátil cuando comencé a darle mucha caña, tras seguir las recomendaciones de Optimización de Linux con discos SSD y la verdad es que me pareció muy interesante compartirlo con todos.
Leer más

Locuras del calor, llevar SWAP a RAM


Este post es de esos que hay que escribir por aprender y por utilizar, pero que realmente puede que nunca llegue a tener una utilidad real. Vamos a ver cómo emplear parte de la memoria RAM para colocar nuestra memoria SWAP, es decir, utilizar la RAM para cuando no tengamos RAM.
Aunque puede parecer un sin sentido, en realidad siempre se le pueden encontrar buenos motivos para emplearlo. A mi ahora mismo se me ocurren,
  • Ver la versatilidad que GNU/Linux ofrece
  • Optimizar/minimizar el acceso a disco
  • Aprender cosas nuevas ;-)
Pero si tenemos que emplear caché es por que no tenemos más RAM, por lo que tenerla ahí ocupada no ayuda demasiado. Eso es cierto, pero el empleo de zRAM tiene la ventaja de que comprime los datos que emplea, por lo que 100Mb de caché pueden rendir como muchos más. A mayores tenemos la caché en memoria "rápida", por lo que incrementa el rendimiento del sistema y en equipos con mucha memoria y discos SSD, minimiza los accesos al mismo.
Pues una vez explicado la idea, vamos a ver cómo emplear zRAM. Para ello, tenemos que comprobar que nuestro sistema tiene soporte para ella,
shell> grep -i zram /boot/config-`uname -r`
CONFIG_ZRAM=m
# CONFIG_ZRAM_DEBUG is not set
En mi sistema zRAM está como un módulo del kernel, por lo que para usarlo debemos de cargar primero dicho módulo,
shell> modprobe zram
Una vez cargado tendremos un nuevo dispositivo, al cual tendremos que darle un tamaño. Es importante no pasarse, ya que este "disco" realmente no está comiendo la RAM, pero acordaros que luego trabaja con datos comprimidos. En mi caso voy a crear un dispositivo de 150Mb,
shell> echo $((150*1024*1024)) > /sys/block/zram0/disksize
Y a continuación, simplemente le indicamos a nuestro sistema que ese disco también forma parte de la SWAP.
shell> mkswap /dev/zram0
shell> swapon -p 10 /dev/zram0
En la segunda línea ejecutada montamos el disco como SWAP y le damos mayor prioridad que al resto de disco que tengamos configurado. Esto es necesario para que use esta partición virtual antes que la física, que es más lenta.
Si lo probáis ya contaréis qué tal la experiencia.

La entrada Locuras del calor, llevar SWAP a RAM lo puedes leer en Puppet Linux.
Leer más

Limpiar memoria swap en Windows

Cualquiera de las versiones de Windows trae por defecto configurado el uso del fichero pagefile.sys como fichero de intercambio o memoria swap. Si bien en GNU/Linux el sistema tiene la posibilidad de usar una de las particiones como tal, en Windows optaron por simplificar y emplear un fichero. En GNU/Linux también es posible usar ese tipo de ficheros.
Pues bien, en este tipo de ficheros se almacenan todas aquellas cosas que no cogen en la RAM del equipo y por lo tanto pueda darse el caso de que en un momento dado ahí haya contraseñas o datos de interés para un atacante. El problema está en que por defecto Windows no vacía o limpia este fichero cuando se apaga y si alguien accede a él, todo lo que tenía almacenado lo puede leer. Y lógicamente si hay contraseñas sin cifrar, se pueden leer. Para evitar que ésto suceda y Windows limpie la memoria de paginación cuando se apage, únicamente hay que editar el registro,
HKEY_LOCAL_MACHINE\
 |
 -SYSTEM\
  |
  -CurrentControlSet\
   |
   -Control\
    |
    -Session Manager\
     |
     -Memory Management
y establecer el valor de la clave 'ClearPageFileAtShutdown' a 1 (de tipo REG DWORD). Con ello, cada vez que el equipo se apague se purga la memoria.
Leer más

Configurar el uso de la SWAP


El área de intercambio o memoria swap es un fichero o una partición en el disco que se emplea para guardar páginas de memoria ram cuando esta queda escasa en el sistema. En GNU/Linux suele existir una o varias particiones especiales dedicadas a tal fin. Con varias, el comportamiento suele ser como un RAID 0, para así aumentar las escrituras,  También, desde Linux, se permite modificar la prioridad de los dispositivos, lo que influye en el rendimiento (opción --priority priority).
Sin embargo, en este post los que nos atañe es modificar la forma que tiene de comportase el kernel con el paso de datos entre la memoria y la swap.
shell> fdisk -l /dev/sda
   Device  Boot Start    End     Blocks  Id  System
/dev/sda1  *        1     61     489951  83  Linux
/dev/sda2          62    304   1951897+  82  Linux swap/Solaris
/dev/sda3         305  19457   85489866  8e  Linux LVM

El uso de swap hace que "aumente" la memoria ram disponible del sistema, pero a cambio disminuye el rendimiento, ya que la I/O a disco es más lento que a ram. Lo ideal siempre es no tener que usar swap, pero eso no siempre va a suceder, por lo que el kernel de Linux permite modificar el comportamiento del área de intercambio desde el fichero /proc/sys/vm/swappiness. El valor dentro de este fichero controla la forma en la que el kernel maneja el intecambio de datos entre ram y swap. Los posibles valores para este fichero están localizados entre 0 y 100.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios