/tmp pequeño basado en RAM

/tmp pequeño basado en RAM

La interfaz web de configuración de mi host VPS me ofrece un cuadro desplegable para configurar mi archivo /tmp.

El valor predeterminado es "16 MB de RAM" y la alternativa es "disco duro".

¿Es posible que tener solo 16 MB /tmpdisponibles pueda causar problemas a algún software? ¿O no?

Respuesta1

¿Es posible que tener sólo 16 MB de /tmp disponibles pueda causar problemas a algún software?

Sí, si algún software quiere escribir /tmpy ese u otro software ya ha llenado la partición. Generalmente, esto indicaría una mala configuración del sistema, una limitación legítima de los recursos disponibles o un mal comportamiento por parte de algún otro software; en cualquier caso, es muy poco probable que el software que desea escribir intente encontrar una solución por sí mismo. y arrojará un error.

Algunos programas asumirán que pueden escribir archivos de gran tamaño /tmp, lo cual, para ser justos, es una suposición justa. Este problema entraría dentro del grupo de errores de "configuración deficiente".

La primera pregunta que debes hacerte es: "¿Qué beneficios tengo para mí al usar RAM /tmp?" Lo mas obviopotencialEl beneficio es que acceder a la RAM es mucho más rápido que acceder a un disco. Sin embargo, es poco probable que este beneficio potencial aparentemente obvio sea tan beneficioso en la realidad porque:

  • De todos modos, el sistema almacena en caché los archivos a los que se accede con frecuencia en la RAM. Reducir la cantidad de RAM disponible para este caché para que pueda colocarlo /tmpallí es un poco tonto, ya que significa que los archivos utilizados con poca frecuencia /tmphabrán suplantado a los archivos utilizados con frecuencia en el caché.

  • Las aplicaciones ya son libres de guardar cosas en la RAM, lo que en general es más fácil que guardarlas en un archivo, por lo que si ponen algo en un archivo tmp, es muy poco probable que sea algo que se beneficie de estar en la RAM. Si observa lo que realmente hay en su archivo /tmp, probablemente se trate principalmente de sockets y fifos o pequeños fragmentos de datos IPC. Acceder a ellos a través de un sistema de archivos basado en RAM es conceptualmente más ordenado, pero dudo que haga una diferencia real.

Siendo ese el caso, ¿por qué se /tmpimplementaría en la RAM?

  1. Simplifica la implementación de una propiedad preferida de /tmp, es decir, que se borra al apagar.

  2. Puede reducir ligeramente el desgaste del hardware. Esto es mucho más significativo en contextos que sólo cuentan con memoria flash barata y de duración limitada para almacenamiento, o que no cuentan con ningún tipo de almacenamiento grabable (por ejemplo, sistemas integrados).

  3. Suponiendo /tmpque no se está abusando de ello, el uso de RAM explota la generalmente enorme capacidad de memoria del hardware moderno; es decir, estas cosas también podrían estar en la RAM, suponiendo que sea el tipo de cosas que se supone que deben ser.

16 megaspodríaser suficiente, pero aún así no es tanto si algún proceso se vuelve loco, y /tmpcualquiera debe poder escribirlo. Sin embargo, si algún proceso se vuelve loco al escribir cosas en /tmp, ¿será mejor si eventualmente llena un disco duro o muestra más rápidamente una señal de alerta porque agotó una partición de RAM?

Si tienes confianza en el software que estás utilizando, este último tiene más sentido, por lo que podrías optar por la partición de RAM. Primero debe examinar un poco su /tmpuso real en caso de que ocurra algo inusual (por ejemplo du -h /tmp). Puede crear un "umbral normal" y verificarlo con un trabajo cron para alertar a alguien y/o realizar una limpieza de emergencia cuando se exceda.

Desafortunadamente, algunas aplicaciones ocasionalmente pueden descargar cosas /tmpque no se eliminan si fallan repentinamente, y en un servidor, que no se cierra con frecuencia, eso podría quedarse ahí indefinidamente. Creo que esto podría suceder de manera muy inofensiva, por ejemplo, cuando alguien inicia sesión y hace uso de algo, entonces la conexión se cierra o se abandona arbitrariamente.

Entonces lo que no es RAM /tmpes más seguro. El abuso podría pasar desapercibido durante más tiempo, pero sólo porque no es tan significativo como lo sería con la RAM. Además, si algo realmente causa un problema, quedará una prueba irrefutable en el disco que indicará el origen del problema.

información relacionada