¿Buen sistema de archivos para / tmp?

31

Estoy pensando en tener / tmp en su propia partición ... ¿cuál sería un buen sistema de archivos para formatearlo?

La razón por la que pregunto es porque los datos que se almacenan en / tmp no son permanentes, por lo que no necesito un diario, un índice elegante ni nada.

Nathan Osman
fuente

Respuestas:

27

A veces encuentro que mover /tmpa ram ( tmpfs) es la mejor solución (especialmente en mis configuraciones que usan muchas cosas de E / S intensivas en disco - MySQL, etc.) si tienes suficiente RAM para alimentarlo.

Marco Ceppi
fuente
2
Tengo 2 GB de RAM, por lo que probablemente no sea una opción.
Nathan Osman el
2
En realidad, esto debería ser suficiente RAM. / tmp por lo general no se usa que tanto con el uso normal de su sistema (sea lo que sea).
joschi
3
tmpfs usará swap si es necesario, por lo que su espacio de intercambio puede cumplir una doble función como / tmp, sin necesidad de asignar espacio adicional.
gbroiles
@George ¿Qué tan grande te gustaría hacer tu partición / tmp?
Marco Ceppi
1
@George es un tamaño de partición lo suficientemente grande para /tmp: en mi escritorio, en el mejor de los casos, uso 12MB, aunque en mis servidores /tmppuede volverse loco cuando los clientes hacen cosas estúpidas en MySQL y lenguajes de script que hacen /tmpque se hagan mucho más grandes. Lo mejor de tmpfs es que no solo quitará 64 MB de ram, es solo un techo duro. tmpfs se escalará a medida que se necesite más espacio, por lo que solo consume en tmpfs lo que se necesita en ese momento.
Marco Ceppi
25

Hay varias buenas opciones aquí:

  1. tmpfs : es un sistema de archivos que almacena sus archivos en RAM. Esto no significa que el sistema de archivos se comerá toda la RAM. En cambio, solo toma la cantidad que realmente necesita. Por lo general, solo se necesitan algunos MB. Si lo usa, agregue una línea como: none /tmp tmpfs size=64M,mode=1777 0 0a su /etc/fstab. Puede cambiar el sizevalor que desee. Si cree que en algún momento que es demasiado pequeño, se puede utilizar mountpara aumentar el tamaño: mount -t tmpfs tmpfs /tmp -o size=128M,mode=1777,remount. El tamaño aumentará en su lugar sin eliminar los archivos existentes.
  2. ext2 / 3 : Usted dijo en su pregunta que no necesita características sofisticadas. Sin embargo, recomendaría usar un diario. Porque si usa ext2 y tiene un tamaño bastante grande /tmp, comprobarlo llevará algún tiempo. ext3 arranca más rápido en muchos casos. Por lo tanto, sugeriría el uso del diario.
  3. ext4 , reiserfs , etc .: algunos usos de software /tmppara almacenar grandes cantidades de archivos pequeños. Entonces, en algunos casos no hay más bloques libres y el sistema de archivos está lleno. ext4 y también reiserfs almacenan archivos de una manera diferente. Por lo tanto, podría ser una buena opción usarlos para usted /tmp.

Si su computadora funciona durante mucho tiempo, es una buena idea eliminar archivos no utilizados /tmp. tmpreaperes una solución que hace eso por ti.

Sin embargo, mi primera opción sería usar tmpfs.

qbi
fuente
¿La primera opción con / etc / fstab también se aplica usando systemd?
Smile4ever
1
@ Smile4ever Sí, /etc/fstabes parte de util-linux, por lo que estará presente en cualquier sistema Linux, independientemente del sistema init que se esté utilizando.
villapx
7

Si no quieres que posiblemente coma RAM, simplemente lo ejecutaré como ext2 . No hay razón para comerse el pequeño impacto de rendimiento del registro en diario para un sistema de archivos cuyos datos no le interesan (no deberían) importar en los reinicios.

En realidad, tacha eso, probablemente deberías usar ext4 y deshabilitar su diario, debería ser más rápido que ext2. Formatee ext4 y péguelo fstabcon la opción de montaje data=writeback.

Nicholas Knight
fuente
6

El uso tmpfsdebe estar bien para sus necesidades, siempre que tenga una RAM adecuada instalada .

Dicho esto ... algo que se debe considerar con respecto al uso de un disco RAM para /tmp(esto tomado de una publicación anterior en otro lugar ):

  • ¿Debería / tmp estar en un área de disco real o permitir su implementación básicamente en el área SWAP (o tmpfs)?

Cuando se usa mucho, esto es una tentación: "pondremos / tmp en un disco RAM, acelerará el acceso, y cuando el sistema se reinicie / apague, no hay nada que limpiar". Sin embargo, si está pensando en implementar el espacio temporal como un disco RAM que se intercambiará, entonces consideraría las ramificaciones del uso del espacio de intercambio de su sistema por parte de otros programas. Si el intercambio está allí como una forma de "desbordamiento de emergencia" para cuando el sistema se encuentra en una situación extrema y lo necesita, lo último que necesita es que el espacio de intercambio sea consumido por un proceso desbocado que se llena / tmp, consume memoria y causa presión sobre el VM subsistema para intercambiar a disco. Entre la actividad de intercambio,seek()

Avery Payne
fuente
5

Usar ext4 con opciones de montaje específicas debería estar bien. Use las siguientes opciones de montaje:

barrier=0 : Significantly improves file write operations in some scenarios
noatime : Don't update file last access time, you don't need this on /tmp files and it should help with write operations performance.
João Pinto
fuente
agregue también nodiratime
Weboide
noatime incluye nodiratime
zvolkov
3

Estoy feliz con ext4. Puedes jugar con algunas opciones de montaje si quieres modificarlo o usar tmpfs si tienes mucha memoria RAM.

Michał Šrajer
fuente
2

En respuesta a los que preguntan por qué querrías una partición / tmp separada, estoy seguro de que hay muchas razones, como algunos ya han dicho, pero una que encuentro particularmente relevante hoy es que si estás ejecutando / en un SSD, desea minimizar las escrituras en esa unidad, por lo tanto, mover / tmp es una buena idea ya que es un área del sistema de archivos que tiende a cambiar mucho.

Matt Smith
fuente
0

Creo que tmpfs podría ser una mala opción porque generalmente / tmp se puede escribir en todo el mundo, por lo que cualquiera puede llenarlo y, si se llena, tomará toda su memoria y su servidor se ralentizará.

Christian DeKonink
fuente
Creo que establecer un tamaño máximo razonable para tmpfs y tener espacio de intercambio se encargará de eso.
Olathe