tmpfs (Español)

Esta traducción de
Tmpfs
fue revisada el
2022-10-22
. Si existen
cambios
puede
actualizarla
o avisar al
equipo de traducción
.
tmpfs
es un sistema de archivos temporal que reside en la memoria y/o partición(es) de intercambio. Montar directorios como tmpfs puede ser una forma eficaz de acelerar el acceso a sus archivos o de asegurarse de que su contenido se borre automáticamente al reiniciar.
Sugerencia
Los archivos temporales en los directorios tmpfs se pueden volver a crear en el arranque utilizando
systemd-tmpfiles
.
Utilización
Algunos directorios en los que se utilice comúnmente
tmpfs(5)
son
/tmp
,
/var/lock
y
/var/run
. No lo utilice en
/var/tmp
, porque ese directorio está destinado a archivos temporales que se conservan durante los reinicios.
Arch utiliza un directorio tmpfs
/run
, con
/var/run
y
/var/lock
simplemente existiendo como enlaces simbólicos por compatibilidad. También se utiliza para
/tmp
por la configuración predeterminada de systemd y no requiere una entrada en
fstab
a menos que se necesite una configuración específica.
glibc
2.2 y posterior espera que tmpfs se monte en
/dev/shm
para
memoria compartida POSIX
. El montaje de tmpfs en
/dev/shm
es gestionado automáticamente por
systemd
y la configuración manual en
fstab
no es necesaria.
Generalmente, las tareas y los programas que ejecutan operaciones frecuentes de lectura/escritura pueden beneficiarse del uso de un directorio tmpfs. Algunas aplicaciones pueden incluso recibir una ganancia sustancial al descargar algunos (o todos) sus datos en la memoria compartida. Por ejemplo,
reubicar el perfil de Firefox en la RAM
muestra una mejora significativa en el rendimiento.
Ejemplos
Nota
El consumo real de memoria/intercambio depende de cuánto se utilice, ya que las particiones tmpfs no consumen memoria hasta que realmente se necesita.
De forma predeterminada, una partición tmpfs tiene su tamaño máximo establecido en la mitad de la RAM disponible, sin embargo, es posible cambiar este valor.
Para establecer explícitamente un tamaño máximo, en este ejemplo para cambiarlo en
/tmp
, utilice la opción de montaje
size
:
/etc/fstab
tmpfs   /tmp         tmpfs   rw,nodev,nosuid,size=2G          0  0
Para especificar un montaje más seguro, especifique la siguiente opción de montaje:
/etc/fstab
tmpfs   /www/cache    tmpfs  rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=
usuario
,gid=
grupo
,mode=1700 0 0
Véase la página de manual
tmpfs(5)
y
Security (Español)#Sistema de archivos
para más información.
Reinicie para que los cambios surtan efecto. Tenga en cuenta que aunque pueda ser tentador ejecutar
mount -a
para que los cambios sean efectivos inmediatamente, esto hará que los archivos que actualmente residen en estos directorios sean inaccesibles (esto es especialmente problemático para ejecutar programas con archivos de bloqueo, por ejemplo). Sin embargo, si todos están vacíos, debería ser seguro ejecutar
mount -a
en lugar de reiniciar (o montarlos individualmente).
Después de aplicar los cambios, verifique que surtieron efecto mirando
/proc/mounts
y utilizando
findmnt
:
$ findmnt /tmp
TARGET SOURCE FSTYPE OPTIONS
/tmp   tmpfs  tmpfs  rw,nosuid,nodev,relatime
tmpfs también puede cambiar de tamaño temporalmente sin la necesidad de reiniciar, por ejemplo, cuando necesite ejecutarse rápidamente un trabajo de compilación grande. En este caso, ejecute:
# mount -o remount,size=4G /tmp
Desactivar el montaje automático
En
systemd
,
/tmp
se monta automáticamente como un tmpfs, si no es ya un punto de montaje dedicado (ya sea tmpfs o en disco) en
/etc/fstab
. Para desactivar el montaje automático,
enmascare
la unidad systemd
tmp.mount
.
Los archivos ya no se almacenarán en un tmpfs, sino en el dispositivo de bloque. El contenido de
/tmp
ahora se conservará entre reinicios, lo que podría no ser el comportamiento deseado. Para recuperar el comportamiento anterior y limpiar el directorio
/tmp
automáticamente al reiniciar, considere utilizar
tmpfiles.d(5)
:
/etc/tmpfiles.d/tmp.conf
# véase tmpfiles.d(5)
# activar siempre la limpieza del directorio /tmp
D! /tmp 1777 root root 0

# eliminar los archivos en /var/tmp con más de 10 días
D /var/tmp 1777 root root 10d

# los puntos de montaje del espacio de nombres (PrivateTmp=yes) se excluyen de la eliminación
x /tmp/systemd-private-*
x /var/tmp/systemd-private-*
X /tmp/systemd-private-*/tmp
X /var/tmp/systemd-private-*/tmp
Solución de problemas
Abrir enlaces simbólicos en tmpfs cuando falla la raíz
Considerando que
/tmp
está utilizando tmpfs, cambie el directorio actual a
/tmp
, luego cree un archivo y un enlace simbólico a ese archivo en el mismo directorio
/tmp
. Es de esperar que se produzcan errores de permiso denegado al intentar leer el enlace simbólico debido a que
/tmp
tiene el "bit pegajoso" activado
.
Este comportamiento se puede controlar mediante
/proc/sys/fs/protected_symlinks
o simplemente mediante sysctl:
sysctl -w fs.protected_symlinks=0
. Véase
Sysctl#Configuration
para hacerlo permanente.
Advertencia
¡Cambiar este comportamiento puede generar problemas de seguridad!
Véase también
Documentación del kernel Linux