Qué es y cómo funciona tmpfs

En el primer artículo del año en la web vamos a tratar el sistema de almacenamiento tmpfs, típico de los sistemas operativos UNIX y like-UNIX. Espero que hayáis tenido un buen compiezo en éste nuevo año 2017, empecemos.

¿Qué es tmpfs?

Tal y cómo he comentado anteriormente se trata de un sistema de almacenamiento típico de sistemas UNIX y similares, como BSD o GNU Linux. Se trata de un sistema de ficheros montado que utiliza memoria volátil. Por lo que los datos que pueda contener se pierden al reiniciar el equipo. Por normal general puede utilizar también el espacio de intercambio o SWAP, en las situaciones en que haya poca memoria volátil, generalmente RAM.

Al utilizar memoria volátil, esto es no utiliza un disco rígido o sólido, las velocidades para realizar operaciones son por normal general mucho mayores. El inconveniente evidente, que he comentado en el párrafo anterior, es que al reiniciar la información se pierde.

tmpfs en GNU Linux

En nuestro sistema operativo favorito del Ñu y el Pingüino el sistema de ficheros del título del artículo está soportado desde la versión 2.4 del kernel. La configuración de la unidad está indicada para el arranque en el fichero /etc/fstab, por lo que su configuración se puede modificar desde allí, también se puede utilizar el comando ‘mount’ para su creación o modificación. Visitando el artículo de Wikipedia podemos encontrar mucha información al respecto y podemos así ampliar conocimientos.

Casos prácticos con tmpfs

Para darle un poco “chicha” al asunto vamos a ver varios casos prácticos. En el primero veamos como modificar el espacio. Para ello debemos utilizar el fichero /etc/fstab. Por normal general tendremos una configuración similar a la siguiente:

  1. Por defecto:
  2. none     /dev/shm       tmpfs   defaults        0 0

En la siguiente línea vamos a añadir un 1GB a la unidad, tal como sigue:

  1. Cambiado:
  2. none     /dev/shm       tmpfs   defaults,size=1G        0 0

Se observa que hemos añadido el parámetro ‘size’ con el tamaño de 1GB. Para que los cambios se hagan efectivos sin reiniciar, escribimos en la consola de comandos:

  1. mount -o remount /dev/shm

De esta manera ya lo tendremos listo.

En el segundo caso vamos a ver como crear una nueva unidad tmpfs, utilizando el comando ‘mount‘, en un sistema con una memoria ram de 4 GB, en la ubicación /mnt/tmp. Sería como sigue:

  1. mkdir /mnt/tmp
  2. mount -t tmpfs tmpfs /mnt/tmp

Para comprobar si ha ido bien, utilizamos el comando df

  1. # df -h /mnt/tmp
  2. Filesystem      Size  Used Avail Use% Mounted on
  3. tmpfs           1.9G     0  1.9G   0% /mnt/tmp

De esta manera ya lo tenemos creado. Si queremos que sea permanente se tendría que añadir en el ficheto /etc/fstab

Espero que os haya parecido útil e insteresante.

La imagen es de Flickr | Creative Commons

5 Respuestas

  1. Xavi Monllau dice:

    Estoy utilizando manjaro y el directorio /tmp esta montado como tmpfs, y me gustaria modificar su tamaño, pero no me aparece en fstab, ¿en que fichero se crea y monta el directorio /tmp con tmpfs?

    • Hola,

      Por defecto el tamaño máximo de tmpfs coincide con la memoria ram del equipo.. ¿No aparece en el fichero /etc/fstab?

      Puedes pasar copia del resultado de escribir «df -h»

      Saludos

  2. Emiliano dice:

    Buen comienzo de año! Saludos!!

  3. Héctor dice:

    Hola David, tengo una pregunta ya que no soy nada experto en asuntos de administración de servidores a pesar de siempre estar tratando de solucionar problemas por mi cuenta, tengo contratado un servidor VPS con OVH, últimamente me estaba quedando sin memoria en el servidor al usar varios dominios por lo que he decidido contratar un segundo disco, normalmente siempre obtengo el mismo resultado en tmpfs – 1%. Normalmente tengo la memoria del disco prácticamente siempre llena:

    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 9,8G 8,2G 1,1G 89% /
    tmpfs 1,9G 12K 1,9G 1% /dev/shm

    La pregunta es, es normal tanta descompensación entre el disco 1 y el tmpfs, este último siempre debe tener tanto margen de maniobra? Esto te lo pregunto porque ha habido momentos en los que tenía la memoria al 100% y sin embargo la parte de tmpfs seguía al 1%. Habría alguna forma de mejorar esto de forma que el disco principal no se llenara tan rápido de memoria en momentos puntuales pasando más carga a la parte de tmpfs, o es algo que no tiene nada que ver?

    Un saludo y gracias.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.