Icono de carpetas temporales o archivos temporales

Montar las carpetas /tmp y /var/tmp en memoria RAM

 
 

En este artículo veremos como montar las carpetas /tmp y /var/tmp en memoria RAM utilizando la interfaz de línea de comandos (CLI).
 
Índice General

  1. Introducción
  2. Modificaciones a realizar
  3. Opciones de montaje

Enlaces externos
 

  1. Introducción (Volver al índice General)
    El motivo por el cual vamos a montar las carpetas temporales /tmp y /var/tmp en memoria RAM son la velocidad o rapidez a la que trabaja la RAM y quitarle trabajo a nuestras unidades de almacenamiento, sobre todo si son SSD.

    Por defecto, los sistemas Linux cuentan con las carpetas temporales /tmp y /var/tmp, o al menos la carpeta /tmp.

    Si contamos con 8GB o 16GB de RAM podremos configurar nuestro sistema operativo para que no use los discos duros y montar dichas carpetas directamente en RAM.

    Hay que tener en cuenta el hecho de que al montar en RAM las carpetas temporales, estas irán cogiendo RAM según necesidad. El montarlas en RAM no implica que agoten su totalidad.

  2.  

  3. Modificaciones a realizar (Volver al índice General)
    Para realizar esta modificación tendremos que editar el archivo /etc/fstab.

    NOTA: Es aconsejable hacer una copia de seguridad del archivo /etc/fstab. Para hacerlo podemos utilizar el siguiente comando:

    $ sudo cp /etc/fstab /etc/fstab.bak

    Si algo va mal, tan solo tendremos que borrar el archivo /etc/fstab modificado con el siguiente comando:

    $ sudo rm /etc/fstab

    y renombrar /etc/fstab.bak con el siguiente comando:

    $ sudo mv /etc/fstab.bak /etc/fstab

    Para editar el archivo /etc/fstab podemos utilizar el siguiente comando:

    $ sudo nano /etc/fstab

    Mostraremos dos métodos prácticamente iguales para el montaje de dichas carpetas en RAM. Hemos optado por utilizar las opciones de montaje óptimas para unidades SSD:

    1. Primer método: Añadir al final del archivo /etc/fstab las siguiente líneas:
      tmpfs /tmp     tmpfs noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0
      tmpfs /var/tmp tmpfs noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0
    2. Segundo método: Simplemente consiste en hacer un enlace simbólico de /var/tmp a /tmp y luego solo tendríamos que montar una única carpeta. Los comandos a ejecutar son los siguientes:

      Nos situamos en la carpeta /var:

      $ cd /var

      Una vez allí, eliminamos la carpeta /var/tmp:

      $ sudo rm -rf /var/tmp/

      A continuación, creamos el enlace simbólico:

      $ sudo ln -s /tmp /var/tmp

      y finalmente, añadimos la línea al archivo /etc/fstab:

      tmpfs /tmp     tmpfs noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0
    3. NOTA: Si ya teníamos montadas dichas carpetas, entonces tendremos que, o bien comentar las líneas ya existentes en el archivo /etc/fstab y añadir las líneas mostradas anteriormente, o sustituirlas por las que hemos mostrado anteriormente. De lo contrario tendríamos montadas las carpetas en dos ubicaciones distintas a la vez y tendríamos problemas.

    Si nuestro sistema utiliza mucha RAM, por ejemplo, por que utilizamos máquinas virtuales, podremos limitar el uso de la RAM añadiendo el parámetro delimitador size. Con este parámetro estamos ordenando al sistema, que bajo ningún concepto conceda más RAM a dichos puntos de montaje que el indicado con el parámetro size. A continuación ponemos un ejemplo de como limitar el tamaño asignado a 2GB:

    tmpfs /tmp     tmpfs size=2G,noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0

  4.  
     
     

  5. Opciones de montaje (Volver al índice General)
    A continuación explicamos algunas de las opciones de montaje:

    • noatime: Deshabilita por completo el registro de tiempo de acceso para cualquier archivo. Implica la aplicación de nodiratime. Teniendo en cuanta que además se anota el acceso a los ficheros cacheados y el acceso constante a todos los ficheros de procesos del sistema, es un número muy importante de escrituras de fechas de acceso. Al reducir la cantidad de escrituras que el sistema operativo realiza sobre el disco, incrementamos la vida de la unidad SSD.
    • nodiratime: Deshabilita el registro de tiempos de acceso para los directorios, pero mantiene activo el registro para los archivos.
    • relatime: Limita el registro de timestamps únicamente a aquellos casos en que el archivo se modifica.
    • De las tres opciones anteriores, la opción menos invasiva es claramente relatime, que ya de por sí ofrecerá alguna ganancia en el rendimiento de nuestros discos duros, sobre todo mecánicos. La opción que más rendimiento ofrece es noatime.

    • size: Opción válida solo para sistemas tmpfs. Limita el tamaño que se utilizará de RAM. Por defecto se utiliza como máximo la mitad de la memoria RAM. También se puede expresar el tamaño en porcentajes de memoria RAM. Por ejemplo size=50%.
    • defaults: Asigna las opciones de montaje predeterminadas que serán utilizadas para el sistema de archivos. Las opciones predeterminadas para ext4 son: rw, suid, dev, exec, auto, nouser, async.
    • rw: Monta el sistema de archivos en modo lectura-escritura.
    • ro: Monta el sistema de archivos en modo sólo lectura.
    • suid: Permite las operaciones de suid, y sgid bits. Se utiliza principalmente para permitir a los usuarios comunes ejecutar binarios con privilegios concedidos temporalmente con el fin de realizar una tarea específica.
    • nosuid: Bloquea el funcionamiento de suid, y sgid bits.
    • exec: Permite la ejecución de binarios residentes en el sistema de archivos.
    • noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos.
    • auto: El sistema de archivos será montado automáticamente durante el arranque, o cuando la orden mount -a se invoque.
    • noauto: El sistema de archivos no será montado automáticamente, solo cuando se le ordene manualmente.
    • user: Permite a cualquier usuario montar el sistema de archivos. Esta opción incluye noexec, nosuid, nodev, a menos que se indique lo contrario.
    • nouser: Solo el usuario root puede montar el sistema de archivos.
    • users: Permite que cualquier usuario perteneciente al grupo users montar el sistema de archivos.
    • owner: Permite al propietario del dispositivo montarlo.
    • dev: Intérprete de los dispositivos especiales o de bloque del sistema de archivos.
    • nodev: Impide la interpretación de los dispositivos especiales o de bloques del sistema de archivos.
    • sync: Todo el I/O se debe hacer de forma sincrónica.
    • async: Todo el I/O se debe hacer de forma asíncrona.
    • discard: Emite las órdenes TRIM para dispositivos de bloques subyacentes cuando se liberan los bloques. Recomendado para usar si el sistema de archivos se encuentra en un sistemas de ficheros ubicados en unidades SSD.
    • nodelalloc: Desactiva la función de ext4 de delayed allocation, que reserva el espacio pero no lo escribe. Aplaza la escritura de bloques hasta que se esté en el tiempo de escritura. Es más que nada por seguridad.
    • barrier=0: Desactiva las barreras automáticamente. Se refiere a los límites de escritura. Si es igual a cero los elimina, si es igual a 1, los activa. Podemos prescindir de estas barreras si los discos están protegidos contra cortes de corriente. Sólo en este caso, incluimos la opción barrier=0
    • i_version: Habilita el uso de la versión extendida de 64 bits en sistemas de ficheros ext4.
    • commit=30: Retrasa la escritura de los metadatos de ficheros, con lo que se reduce mucho el uso de disco. No recomendable si estuviésemos en un ordenador con batería.
    • inode_readahead_blks=64: Aumenta de 32 a 64 el tamaño de los bloques de lectura.
    • data=writeback: Evita que los metadatos de los archivos sean escritos de forma lenta tras escribir los archivos. Esta opción no provoca corrupción en el sistema de archivos, pero puede provocar que los cambios mas recientes se pierdan si cae el sistema. No lo incluiremos en nuestros ejemplos ya que no funciona en algunos sistemas.
    • flush: La opción vfat permite eliminar datos con más frecuencia, de modo que los cuadros de diálogo de copia o las barras de progreso se mantenga hasta que se hayan escrito todos los datos.
    • nofail: Monta el dispositivo cuando está presente, pero ignora su ausencia. Esto evita que se cometan errores durante el arranque para los medios extraíbles.
    • mode=1777: Permite que cualquiera pueda crear archivos, pero protegiéndolos de la manipulación de otros usuarios.

    NOTA: Las opciones deberán añadirse junto con el resto de opciones y separadas por comas (,) y no por espacios.

 
Enlaces externos (Volver al índice General)

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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