Thursday, November 20, 2008

Uso de la RAM para guardar datos con RAMFS o TMPFS

Hace algun tiempo se me ocurrio la idea de que seria util almacenar ciertos datos en la RAM debido a su velocidad de escritura, asi que me puse a investigar y encontre dos sistemas para hacerlo, uno RAMFS y el otro TMPFS.

Como montar ambos ? aqui va para los impacientes nuevamente:

mkdir -p /mnt/tmp
mount -t tmpfs -o size=10m tmpfs /mnt/tmp

o sino para ramfs, de la siguiente forma:

mkdir -p /mnt/ram
mount -t ramfs -o size=10m ramfs /mnt/ram

Con ambos comandos disponemos de 10 MB en RAM para escribir, pero con las siguientes diferencias:

- RAMFS crece dinamicamente, asi que si tenemos 1 GB de RAM y le seguimos tirando datos, ocupara toda la memoria e incluso ocupara SWAP (peligroso para mi gusto).

- TMPFS no crece dinamicamente, asi que si lo usamos como en el ejemplo, nunca nos iremos del limite de 10 MB, pero logicamente obtendremos los mismos errores al quedarnos sin espacio que con una particion llena en disco. No usa SWAP, por ende es el mas seguro de los dos.

Logicamente, podemos montar una particion con cualquiera de los dos sistemas al inicio en /etc/fstab como cualquier otro sistema de archivos.

Y por ultimo, una obviedad: al ser ambos sistemas de archivos alojados en la RAM, al desmontarlos o al reiniciar el equipo perdemos los datos, asi que hay que copiar los datos a algun otro lugar antes de desmontar o reiniciar.

El uso personal que le doy a todo esto es para almacenar las sesiones de php en un directorio especial, en el php.ini se puede cambiar con la directiva:

session.save_path = "/tmp/ramdisk"

Eso es todo amigos !

No comments:

Followers

About me

Santa Fe, Argentina
Programador Web, PHP, MySQL, JQuery, Administrador Linux. LAMP, Lighttpd, Nginx.