TMPFS Sistema de archivos de memoria virtual en Linux

TMPFS Sistema de archivos de memoria virtual en Linux
TMPFS, anteriormente conocido como shmfs, es un sistema de archivos temporal y se refiere a un sistema de archivos que se encuentra en la memoria y/o en la (s) partición (s) de swap (s). TMPFS no almacena los datos del archivo en el almacenamiento normal y no volátil. En cambio, el kernel unix gestiona la memoria virtual, que es donde tmpfs archiva en vivo.La razón principal por la que se creó TMPFS fue mejorar el rendimiento al permitir que los archivos temporales se escriban y lean sin usar el disco o E/S de red.

De que hablaremos?

En este artículo, veremos una descripción general del sistema de archivos TMPFS en Linux.

Ventajas de usar el sistema TMPFS

El antiguo sistema de archivos de memoria de acceso aleatorio (RAMFS) en Linux ha sido reemplazado por el nuevo sistema de archivos temporal (TMPFS). Esto se debe a que los viejos RAMF no abordaron las situaciones correctamente cuando el sistema se quedó sin RAM.

Montaje de directorios como TMPFS tiene varios beneficios, como:

1. Para acelerar el acceso a los archivos dentro de ellos.

2. Para asegurarse de que cada vez que se reinicie el sistema, el contenido de los directorios se elimina automáticamente.

3. TMPFS aumenta la tasa de manipulación del archivo mientras preserva la semántica de un archivo UNIX.

4. TMPFS no necesita el espacio de disco fijo o dedicado para los archivos y no tiene efectos adversos en el rendimiento.

En lugar de utilizar la memoria física dedicada como un "disco de RAM", TMPFS almacena los datos del archivo en el caché de la página de un sistema operativo. Hace que sea más fácil leer y escribir los archivos, permite que el sistema de archivos crezca y se reduzca sobre la marcha sin usar ningún espacio en disco, y no perjudica el rendimiento general del sistema.

Montaje tmpfs

Use el comando de montaje y elija "TMP" como el tipo de sistema de archivos para crear un sistema de archivos de tipo TMPFS. Dado que TMPFS siempre utiliza la memoria como recurso del sistema de archivos, el parámetro de recurso para montar (e.gramo. el dispositivo sin procesar) no se tiene en cuenta. Dado que TMPFS siempre usa la memoria como recurso del sistema de archivos, el parámetro de recursos para el montaje (como el dispositivo sin procesar) no se tiene en cuenta.

Actualmente, TMPFS no tiene opciones de montaje. Muchas opciones de montaje regulares no son relevantes para el contexto de TMPFS. Por ejemplo, hacer un montaje TMPFS "solo leer" no tiene ningún sentido, ya que no contienen datos cuando están montados por primera vez. TMPFS admite todos los tipos de archivos, que también incluyen los archivos de dispositivos especiales de enlaces simbólicos, bloqueos y caracteres: semántica de archivos UNIX. Aunque puede haber muchos sistemas de archivos basados ​​en TMPFS que están montados en un solo sistema, todos tienen que compartir el mismo grupo de recursos.

Dado que el contenido de un sistema de archivos basado en la memoria se limpia después de un reinicio del sistema o una operación desmontada, y debido a que estos archivos tienen vidas muy cortas, /TMP Is La ubicación más adecuada para ellos (así conocido como TMPFS). Esto indica que /usr/tmp no es una ubicación apropiada para montar un sistema de archivos TMPFS porque su contenido se conserva entre los reiniciados.

Tamaño de tmpfs

La cantidad de espacio libre que puede usar TMPFS es directamente proporcional a la cantidad de espacio de intercambio no utilizado. El tamaño de un sistema de archivos TMPFS se expande para adaptarse a los archivos que se le agregan, pero los usuarios que usan regularmente TMPFS deben ser conscientes de que este crecimiento viene con algunos costos inherentes. TMPFS comparte sus recursos con los segmentos de datos y pila de programas que se están ejecutando.

Si los sistemas de archivos TMPFS están cerca de su capacidad máxima permitida, es posible que la ejecución de programas muy grandes se vea afectado. TMPFS puede asignar todo el espacio de intercambio del sistema, con la excepción de 4 MB. Esto es suficiente para asegurarse de que la mayoría de los programas puedan ejecutar. No obstante, es posible que ciertos programas no puedan ejecutar si los sistemas de archivos TMPFS están cerca de la capacidad total. Los usuarios que planean ejecutar los grandes programas y usar ampliamente TMPFS deben buscar formas de aumentar el espacio de intercambio disponible en el sistema.

Usos de TMPFS

Los usos de los TMPF incluyen:

1. Siempre hay un soporte interno en el núcleo que no se puede ver. Memoria compartida de SYSV y las asignaciones anónimas compartidas utilizan el TMPFS. El montaje TMPFS es independiente de config_tmpfs. La parte visible del usuario de TMPFS no se creará si no está configurado config_tmpfs. Sin embargo, los mecanismos internos existen en todo momento.

2. La memoria compartida de Posix (shm_open, shm_unlink) requiere que los tmpf se monten en /dev /shm para las versiones GLIBC 2.2 y más. Esto puede resolverse incluyendo la siguiente línea en el archivo /etc /fstab:

tmpfs /dev /shm tmpfs predeterminados 0 0 0

Si es necesario, cree el directorio donde desea montar el TMPFS.

La memoria compartida que usa SYSV no necesita el soporte TMPFS. Esto se hace con el soporte interno. Para usar la memoria compartida SYSV en el 2.3 versiones del núcleo, SHM FS (el predecesor de TMPF) tuvo que ser montado.

3. Es realmente útil que algunos usuarios lo monten en ubicaciones como /TMP y /var/tmp y tener un disco de intercambio considerable. Además, los montajes de bucle de los archivos TMPFS ahora son funcionales. Por lo tanto, la mayoría de las distribuciones Mkinitrd debería funcionar con un TMPFS.

4. Y hay demasiados para enumerar.

Opciones de montaje para TMPFS

Exploremos algunas de las opciones de montaje con TMPFS:

tamaño: Esto especifica el número máximo de bytes que se pueden usar para una instancia de TMPFS. Por defecto, solo la mitad de la RAM física se puede usar sin espacio de intercambio.

Si las instancias de TMPFS se hacen más grandes de lo que deben ser, la máquina se atasca en un punto muerto porque el controlador OOM no podrá liberar esa memoria.

Bloques NR: Es lo mismo que la opción de tamaño. Sin embargo, está en bloques de page_cache_size.

inodos nr: Es el límite superior de los inodos para este caso. El valor predeterminado es la mitad del número de páginas de RAM físicas o el número de páginas de RAM LowMem (en un sistema con Highmem), lo que sea menos.

Conclusión

Normalmente, los archivos TMPFS se eliminan a través de los reinicios del sistema. Pero si desea preservarlos, puede usar los Files SystemD-TMP. Le recomendamos que lea las páginas del hombre si desea obtener más información sobre TMPFS.