GNU/Linux >> Tutoriales Linux >  >> Linux

Descripción general de RAMFS y TMPFS en Linux

Esta es una publicación invitada escrita por SathiyaMoorthy.

Con ramfs o tmpfs puede asignar parte de la memoria física para usarla como partición. Puede montar esta partición y comenzar a escribir y leer archivos como una partición de disco duro. Dado que leerá y escribirá en la RAM, será más rápido.

Cuando un proceso vital se vuelve drásticamente lento debido a las escrituras en el disco, puede elegir los sistemas de archivos ramfs o tmpfs para escribir archivos en la RAM.


Tanto tmpfs como ramfs mount le darán el poder de leer y escribir archivos rápidamente desde y hacia la memoria principal. Cuando prueba esto en un archivo pequeño, es posible que no vea una gran diferencia. Notará la diferencia solo cuando escriba una gran cantidad de datos en un archivo con alguna otra sobrecarga de procesamiento, como la red.

1. Cómo montar Tmpfs

# mkdir -p /mnt/tmp

# mount -t tmpfs -o size=20m tmpfs /mnt/tmp

La última línea del siguiente df -k muestra el sistema de archivos /mnt/tmp tmpfs montado anteriormente.

# df -k
Filesystem      1K-blocks  Used     Available Use%  Mounted on
/dev/sda2       32705400   5002488  26041576  17%   /
/dev/sda1       194442     18567    165836    11%   /boot
tmpfs           517320     0        517320    0%    /dev/shm
tmpfs           20480      0        20480     0%    /mnt/tmp

2. Cómo montar Ramfs

# mkdir -p /mnt/ram

# mount -t ramfs -o size=20m ramfs /mnt/ram

La última línea del siguiente comando de montaje muestra el sistema de archivos /mnt/ram ramfs montado anteriormente.

# mount
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
tmpfs on /mnt/tmp type tmpfs (rw,size=20m)
ramfs on /mnt/ram type ramfs (rw,size=20m)

Puede montar ramfs y tmpfs durante el arranque agregando una entrada a /etc/fstab.

3. Ramfs frente a Tmpfs

Principalmente, tanto ramfs como tmpfs hacen lo mismo con pocas diferencias menores.

  • Ramfs crecerá dinámicamente . Por lo tanto, debe controlar el proceso que escribe los datos para asegurarse de que ramfs no supere el tamaño de RAM disponible en el sistema. Digamos que tiene 2 GB de RAM en su sistema y creó un ramfs de 1 GB y lo montó como /tmp/ram. Cuando el tamaño total de /tmp/ram cruza 1 GB, aún puede escribir datos en él. El sistema no le impedirá escribir datos de más de 1 GB. Sin embargo, cuando supera el tamaño total de RAM de 2 GB, el sistema puede bloquearse, ya que no hay lugar en la RAM para guardar los datos.
  • Tmpfs no crecerá dinámicamente . No le permitiría escribir más del tamaño que especificó al montar el archivo tmpfs. Por lo tanto, no necesita preocuparse por controlar el proceso que escribe los datos para asegurarse de que tmpfs no supere el límite especificado. Puede dar errores similares a "No queda espacio en el dispositivo".
  • Tmpfs usa intercambio .
  • Ramfs no utiliza intercambio.

4. Desventajas de Ramfs y Tmpfs

Dado que tanto ramfs como tmpfs están escribiendo en la RAM del sistema, se eliminaría una vez que el sistema se reinicie o se bloquee. Por lo tanto, debe escribir un proceso para recoger los datos de ramfs/tmpfs en el disco en intervalos periódicos. También puede escribir un proceso para escribir los datos de ramfs/tmpfs en el disco mientras el sistema se está apagando. Pero, esto no lo ayudará en el momento del bloqueo del sistema.

Tabla:Comparación de ramfs y tmpfs
Experimentación Tmpfs Ramfs
Llene el espacio máximo y continúe escribiendo Mostrará error Seguiré escribiendo
Tamaño fijo No
Usa intercambio No
Almacenamiento volátil


Si desea que su proceso escriba más rápido, optar por tmpfs es una mejor opción con precauciones sobre el bloqueo del sistema.

Este artículo fue escrito por SathiyaMoorthy. Trabaja en bksystems, está interesado en escribir artículos y contribuir al código abierto en su tiempo libre. The Geek Stuff agradece sus consejos y artículos de invitados.


Linux
  1. Comandos de Linux:descripción general y ejemplos

  2. Descripción general de FTP y SFTP

  3. Linux Eliminar archivos y directorios

  4. Descripción general del proceso UNIX (dentro de un proceso Linux y tipos de proceso)

  5. uso y cambio de tamaño de tmpfs

Mi terminal Linux mínimo y rico en funciones

Comando Df en Linux

Una descripción general de Clear Linux de Intel, sus características y procedimiento de instalación

Kernel de Linux y sus funciones

Instalar y configurar Ansible en Linux

Instalación y configuración de Jenkins en Linux