¿Utilizando tmpfs + una partición swap muy grande para / tmp en lugar de un sistema de files normal?

Tengo server de Linux y tengo una partición de disco de 500GB de repuesto. Quería formatearlo y usarlo para / tmp. El server de vez en cuando ejecuta algunas tareas de procesamiento de datos de gran tamaño por lo que puede suceder que / tmp celebrará GB de datos temporales.

Entonces tuve la idea de que en su lugar podría añadirlo como una partición de intercambio y montar / tmp a tmpfs. ¿Es esta idea razonable?

El server tiene 6GB de RAM, así que en la mayoría de los casos los datos en / tmp estarían solamente en RAM, con la ventaja obvia de la velocidad. La pregunta es, ¿qué pasa si vamos a decir digamos 10-20GB de datos en / tmp, ¿cómo funcionará el sistema? ¿Cuál sería el performance en comparación con tener simplemente / tmp montado en una partición ext4? Gracias por la ayuda.

Edit: Está claro que el sistema comenzará a intercambiar memory cuando el uso de tmpfs llegue al límite de RAM. ¿Pero es Linux lo suficientemente inteligente para intercambiar datos tmpfs y mantener datos "regulares" en RAM? En caso afirmativo, supongo que podría comportarse razonablemente. Si no, entonces todo el sistema se verá gravemente afectado.

2 Solutions collect form web for “¿Utilizando tmpfs + una partición swap muy grande para / tmp en lugar de un sistema de files normal?”

Esto NO es una Buena Idea TM .

Estarás bien con una partición grande /tmp , montada como esta (desde tu /etc/fstab )

 tmpfs /dev/tmp tmpfs defaults,nosuid,nodev,noexec,noatime,nodiratime,size=6000M 0 0 

Y puede agregar su unidad externa como una partición de intercambio gigante

 /dev/sdb1 swap swap defaults 0 0 

Cuando eso llegue a su límite, su máquina comenzará a intercambiar las páginas de RAM a disco – momento en el que los promedios de carga pasarán por el techo y la máquina se detendrá.

Es una mala idea confiar en SWAP de alguna manera, sería mejor vender su unidad de 500 GB y simplemente comprar más RAM – es barato.

En resumen

Si realmente desea utilizar su disco de 500 GB, podría montar su disco de 500 GB en /tmp con un sistema de files no registrado con atime y diratime deshabilitado (por ejemplo, ext2 ). Eso sería sustancialmente más rápido que tratar con una máquina que es SWAP ing

Esto podría ser una idea razonable.

Poner un sistema de files real en / tmp incurre en gastos generales, ya que los filesystems pasan por grandes longitudes para asegurarse de que los datos en el disco no está dañado en caso de fallo del sistema. Para un / tmp que se limpia en time de arranque, que es, obviamente, sólo gastos generales. Usar un tmpfs evitaría esa sobrecarga.

Por otro lado, los filesystems también aseguran que los files se organizan en el disco de una manera que optimiza el time de acceso – es decir, evitarán la fragmentación. Los accesos de files secuenciales típicos resultarán (en su mayoría) en accesos de disco secuenciales, que son más eficientes que los accesos aleatorios. Este efecto es más pronunciado en discos duros giratorios que en SSD. La combinación swap + tmpfs no puede hacer esto fácilmente, ya que swap no es consciente de qué parte de la memory pertenece a qué file y tmpfs no tiene conocimiento de cómo las páginas se asignan a la memory física o al disco. Para files grandes, sin embargo, debería funcionar bien, ya que tanto tmpfs como swap intentan mantener las cosas contiguas en ese caso. Por lo less, siempre y cuando haya mucho espacio libre en el intercambio (de lo contrario, la fragmentación se inicia), y las escrituras suceden lo suficientemente lentamente como para tener la oportunidad de ser intercambiadas.

Así que la conclusión es: depende, debe probar ambas opciones para ver cuál funciona mejor.

Cuando monta el tmpfs, recuerde establecer el tamaño explícitamente. El valor pnetworkingeterminado es la mitad de la RAM física, por lo que sólo 3 GB.

  • tmpfs - auto crea toda la ruta cuando escribe en el file
  • Monitorear IO a la partición tmpfs?
  • ¿Cómo puedo medir RAM / tmpfs IOPS de una aplicación específica?
  • tmpfs se llena, aunque apenas se usa. ¿Cómo puedo depurar esto?
  • Tmpfs para mysql tmp
  • ¿Hay algo malo en hacer tu documentroot tmpfs, si tienes el carnero de sobra?
  • Cree filesystems de RAM de tamaño variable (Ext4 y Btrfs)
  • La mejor manera de almacenar sesiones en una forma de alta disponibilidad / alto performance en varios entornos de server
  • iniciar service mysql después de sincronizar datos dir a tmpfs
  • Bajo espacio en / ejecutar
  • Configurar tmpfs `/ run / lock` para cientos de miles de files de locking de 0 bytes, y tratar con el límite de inodo
  • df muestra demasiado espacio en tmpfs
  • Diferencia de performance entre ramfs y tmpfs
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.