Después de ver el comentario de Anónimo sobre la pregunta ¿Cómo se limpia el directorio / tmp? , Descubrí que sería una gran idea implementarlo en mi sistema, ya que tengo 16 GB de RAM y nunca lo usé todo.
Mis archivos temporales nunca se escriben en el disco. Se escriben en un disco RAM. Puse
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
en / etc / fstab.
Mi pregunta es:
¿Puedo establecer un valor máximo para el uso de RAM /tmp
? Y en ese caso, ¿qué sucedería si se superara la cantidad máxima, escribiría en la unidad de disco duro?
He leído una solución que dice:
mkdir -p /tmp/ram sudo mount -t tmpfs -o size=512M tmpfs /tmp/ram/
Pero en mi opinión, esta no será una solución permanente. Si necesito que sea permanente, debe agregarse al /etc/fstab
archivo de configuración.
Si esta es la solución correcta, ¿cómo puedo transformar ese comando de montaje en una línea /etc/fstab
?
fuente
Respuestas:
Tienes toda la razón. La entrada correspondiente de fstab se vería así:
Tenga en cuenta:
A medida que
tmpfs
se llena, se comportará como cualquier disco duro físico al dar un error de "espacio insuficiente". Si bien el reinicio (y, por lo tanto, vaciar el caché) solucionará esto, puede tener problemas cuando una sola operación consume más espacio para empezar de lo que hay espaciotmpfs
. En este caso, su computadora comenzará a cambiar de RAM a disco, lo que hará que su sistema se detenga, dado que tiene una partición de intercambio para comenzar, por supuesto.Teniendo esto en cuenta, un tamaño de 512 MB podría ser mucho menor hoy en día, ya que existe mucho más ram en las máquinas modernas y se ha vuelto mucho más barato. Como ya tienes 16 GB de RAM, usar el valor predeterminado de la mitad de tu RAM
tmpfs
debería ser más que suficiente para casi todos los escenarios. Para usar el valor predeterminado, simplemente omita lasize=512M
entrada en su/etc/fstab
archivo.Otra nota:
También puede montar fácilmente otras carpetas del sistema en ramdisk, como
/var/cache
/var/games
/var/log/apt
(usar solodefaults,noatime
sinmode=
onosuid
)Pero tenga cuidado: las mismas reglas se aplican como anteriormente, quedarse sin espacio puede causar grandes problemas. Por ejemplo, si se agota el espacio para / var / log / apt, no podrá instalar ningún programa. Además, al cargar
/var/log
carpetas en ramdisk se eliminarán todos los archivos de registro al reiniciar, por lo que no podrá depurar su sistema si ocurre algo inesperado. ¡Utilice esta configuración bajo su propio riesgo!Nota editorial: eliminé la opción
/run
intmpfs
mount ya que esta carpeta y sus subcarpetas ya están montadastmpfs
de forma predeterminada.fuente
En los sistemas que usan
systemd
, tiene la opción de usar un archivo de unidad systemd en lugar de fstab para lograr el objetivo de usartmpfs
para montartmp
. En mi sistema Ubuntu 16.04, ejecuté:El archivo se
/usr/share/systemd/tmp.mount
ve así:Usando el enfoque fstab de FuzzyQ, systemd traduce sus entradas fstab en unidades de montaje dinámicamente. No creo que ninguno de los enfoques sea mejor.
Para establecer el límite máximo para la RAM como se le solicitó, uno necesitaría agregar
size=512M
a laOptions
línea, separados por una coma.fuente
systemctl enable tmp.mount
después de cp else systemctl fallará con el mensaje "Failed to start tmp.mount: Unit tmp.mount not found.
"systemctl edit tmp.mount
eso que sería distro-neutral. Eso coloca sus cambios en override.conf para que no modifique tmp.mount predeterminado y pueda eliminar override.conf fácilmente para volver a la configuración predeterminada.ln -s
lugarcp
del primer paso.