Tecnología

Cómo ampliar el espacio tmpfs en Linux – CloudSavvy IT

Bash Shell

Bash Shell

¿Alguna vez has oído hablar de tmpfs en Linux? Es ese pequeño sistema de archivos temporal que reside en la memoria y se instala de forma predeterminada en las distribuciones de Linux. Ultrarrápido pero normalmente de tamaño limitado. ¿Se puede cultivar fácilmente? ¡Saber más!

Que es tmpfs?

Todo dentro de una computadora tiene una cierta velocidad de operación nativa. Comienza con la CPU (la Unidad Central de Procesamiento) en su computadora, que tiene un conjunto de cachés L1-Lx (Nivel 1 a Nivel x), que son muy pequeños (por ejemplo, 16 Kb) pero ultrarrápidos (y probablemente ultrarrápidos). -costoso).

Después de las memorias caché de la CPU, están los principales bancos de memoria, que siguen siendo mucho más rápidos (y byte por byte más caros) que el disco duro, etc. Como puede ver, se trata de costo versus tamaño versus velocidad. La regla general es que el costo aumenta a medida que aumenta la velocidad y que el tamaño se reducirá para limitar el costo, etc.

Si almacenara todos sus datos dentro de los chips de memoria principal de su computadora, lo cual es técnicamente muy posible y bastante fácil de hacer, su trabajo literalmente volar en comparación con cuando usa solo disco, ya que los chips de memoria son mucho más rápidos que la mayoría de las unidades de disco duro.

Sin embargo, existen algunas limitaciones técnicas con esto. Una vez que apague su computadora, sus archivos desaparecerán. Una falla irrecuperable de la aplicación podría ser suficiente para que tenga que reiniciar su computadora y perder sus archivos. Además, nunca más podría apagar su computadora, a menos que tuviera alguna característica avanzada (que no existe hasta donde yo sé) para mantener sus archivos en los chips de memoria, similar a un caché compatible con BBU (Unidad de respaldo de batería). en un controlador de incursión.

Sin embargo, tenga en cuenta que hay una característica similar (pero no idéntica) a esta que ya puede estar usando: cuando suspende su sistema a la RAM (usando dormir u otra terminología similar empleada por los sistemas operativos), se proporcionará continuamente algo de energía a sus chips de memoria para mantener sus datos actuales.

Luego, cuando reanude su sistema, podrá continuar donde lo dejó. Pero cerrar mientras se mantiene el contenido de la memoria generalmente no se usa con ordenadores. Potencialmente, podría ser utilizado por tabletas inteligentes, aunque se podría argumentar que tales estados no son verdaderos estados de apagado, sino más bien estados de bajo consumo de energía.

Habiendo aclarado cómo, en términos generales, es probable que no sea una idea sólida guardar sus archivos en chips de memoria, existen otros usos en los que podría resultar útil. Por ejemplo, al realizar pruebas / control de calidad de programas, es probable que inicie y cierre el programa bajo prueba muchas veces.

Dichos archivos son temporales y de poco valor individual (a menos que se encuentre un error, momento en el que los datos se pueden copiar de nuevo al disco principal) y, como tales, podrían almacenarse en sus chips de memoria. Esto es lo que tmpfs es y hace: Es un sistema de archivos temporal dentro de su memoria. Algunos de ustedes podrían objetar inmediatamente y decir: «Eso no es cierto», y estarían en lo cierto. Sigue leyendo.

Aquellos que hubieran objetado podrían haber hecho inmediatamente la afirmación de que el tmpfs no se garantiza que el espacio esté en la memoria, y esto es cierto. Puedes ver tmpfs como un híbrido entre un verdadero disco RAM (un disco creado en memoria volátil) y el almacenamiento en disco permanente real. En ciertos casos, el kernel de Linux intercambiará el contenido de tmpfs en el espacio de intercambio del sistema, que podría estar en el disco. Esto se hace de forma transparente (sin que sea necesaria la interacción del usuario).

Si deseas obtener más información sobre cómo configurar un disco RAM, consulte nuestra guía Cómo crear una unidad RAM en Linux.

Su actual tmpfs Tamaño

Ahora que tenemos tmpfs espacio mejor definido, echemos un vistazo al tamaño actual de su tmpfs espacio. Podrías pensar en el tmpfs sistema como una unidad virtual, temporal y volátil. Puede ver el espacio en uso usando df -h (uso del espacio en disco del sistema de archivos (df) en formato legible por humanos, gracias a la -h opción):

df -h | grep -Ei 'shm|size'

Verificando el uso actual de tmpfs usando df -h

Aquí usamos df -h (explicado arriba) combinado con una pipa (|) para enviar la salida resultante del df -h a un grep, que utiliza un extendido (-E) formato de expresión regular de una manera que no distingue entre mayúsculas y minúsculas (-i o simplemente I cuando se combina con otra opción) para seleccionar el título superior (que incluye la palabra Size) y cualquier línea que incluya el texto shm.

La razón por la que grep shm es que casi siempre, como también podemos ver en la salida aquí, el espacio tmpfs se asigna al directorio del sistema de archivos /dev/shm. Si el comando anterior no genera ningún resultado, simplemente ejecute df -h y revise los resultados totales para buscar tmpfs espacio, si lo hay.

Tenga en cuenta que, de forma predeterminada, el sistema operativo también asignará / establecerá algunos espacios tmpfs, que podrían, por ejemplo, mapearse / montarse en el /sys/fs/cgroup, /run y /run/lock directorios. No intente modificarlos.

En cuanto a /dev/shm y otros directorios, tenga en cuenta que ver estas carpetas en la estructura de directorios del sistema operativo [tree] no significa que los archivos estén realmente / físicamente almacenados en el disco en algunos /dev/shm ¡directorio!

Simplemente significa que, de acuerdo y online con la forma estándar de Linux de poder montar unidades (o en este caso, tmpfs) en cualquier directorio en la jerarquía del sistema de archivos, si hubiera archivos en dicho directorio antes del montaje , simplemente no serían visibles hasta que se cayera el punto de montaje.

En este sistema en particular, el tmpfs el espacio es de 32 GB y casi todo no se utiliza. Lo poco que está en uso (166 MB) es la tabla de meta / índice del directorio en sí, que es invisible para los usuarios, pero está en su lugar para poder almacenar archivos en la estructura del sistema de archivos. El tamaño de la tmpfs es, de forma predeterminada, la mitad de la memoria del sistema para determinados sistemas operativos.

Este es un bastante grande tmpfs y solo estaría técnicamente justificado, hasta cierto punto, en un sistema con, por ejemplo, 40 GB o más de memoria física, aunque, dependiendo de las circunstancias, un caso de uso particular podría justificar otras configuraciones. En general, recomiendo mantener el tmpfs espacio menos que, digamos, el 70-80% de la memoria, y ese porcentaje sería significativamente menor si la RAM (Memoria de acceso aleatorio, otra forma abreviada o forma de referirse a la memoria del sistema) era pequeña para empezar.

La razón de esto es que desea dejar suficiente espacio de memoria disponible para ejecutar otros programas, sistemas operativos y servicios de software.

Por ejemplo, no querría asignar el 80% de la memoria si su sistema tuviera 2 GB de memoria, ya que esto probablemente dejaría muy poca para que otras cosas funcionen correctamente o en absoluto. Si, por otro lado, tiene una gran cantidad de 256 GB de memoria, incluso el 90% de esa (230,4 GB) dejaría unos buenos 25 GB disponibles, que, según el caso de uso, podrían (o no) ser suficientes.

En resumen, te recomiendo que siempre ajuste el tamaño de tmpfs dependiendo de 1) cuánto espacio realmente necesita en tmpfs, 2) cuánta memoria hay en su sistema y 3) cuánta memoria real están usando otras aplicaciones además de tmpfs (incluyendo sus operaciones, servicios, etc.). La experiencia con todas estas cosas ayuda aquí.

Ampliación tmpfs en su sistema

Ahora que conocemos el tamaño de la corriente tmpfs volumen y qué tamaño darle en el futuro utilizando algunas de las consideraciones proporcionadas en el último párrafo anterior, podemos echar un vistazo a ampliar (o reducir) nuestro tmpfs espacio.

Hacerlo es bastante fácil. Todo lo que tenemos que hacer es, en lugar de que el sistema operativo configure automáticamente el /dev/shm tmpfs espacio para nosotros, defínalo estáticamente en su lugar en el /etc/fstab archivo, que controla las asignaciones de unidades al inicio. Simplemente agregamos:

# <file system> <mount point> <type> <options>                                       <dump> <pass>
tmpfs           /dev/shm      tmpfs  defaults,rw,nodev,nofail,noatime,nosuid,size=2G   0      0

hacia /etc/fstab expediente. No copie el primer comentario (# prefijo), ya que ya estará allí. Además, cambie el 2G (2GB) según su requisito calculado / estimado para el tamaño de tmpfs. Es probable que no sea útil establecer esto cerca o por encima del tamaño de la memoria disponible, como explicamos anteriormente.

Las marcas de encabezado en el /etc/fstab archivo aclarar el significado de los campos, y puede encontrar más información en el fstab manual, que se puede obtener escribiendo man fstab. Básicamente, le pedimos al sistema operativo que monte un tmpfs sistema de archivos (la ubicación del sistema está en la memoria, por lo que en lugar de especificar un dispositivo, indicamos tmpfs.) y la del tipo tmpfs, montado en /dev/shm.

También establecemos una serie de opciones. Probablemente querrás dejar el defaults,rw,nodev,nofail como mínimo (use los valores predeterminados, acceso de lectura / escritura, ningún dispositivo físico presente y no deje de iniciar el sistema operativo si este montaje falla de alguna manera).

También puede optar por dejar las opciones de optimización noatime,nosuid si lo desea (que es ideal para pruebas / configuraciones de control de calidad, ya que lo hará más rápido mientras mantiene menos información sobre los archivos en el espacio tmpfs), o puede eliminarlos (y sus comas coincidentes). Además, deje (y cambie / especifique el tamaño) el size=xG parámetro. Finalmente, tenemos un estándar 0 0 por dump and pass (árbitro man fstab para obtener más información sobre estas dos opciones).

Una vez realizado el cambio, simplemente reinicie su sistema y ejecute df -h para verificar que tu /dev/shm El espacio tmpfs ahora tiene el nuevo tamaño que configuró. Si algo salió mal, simplemente verifique dmesg (escrito en el símbolo del sistema) y escanee hacia arriba en busca de mensajes de error rojos (es probable que tenga que desplazarse) para averiguar qué salió mal. Aunque algo salió mal, el sistema debería haber comenzado bien de todos modos, siempre que no haya eliminado el nofail opción.

Para los usuarios de Ubuntu, existe, sin embargo, una posible error nofail tener en cuenta. Solía ​​haber una alternativa nobootwait opción [instead], aunque no está claro si todavía se puede usar y, de ser así, en qué versiones de Ubuntu y sus derivados [only]. Como alternativa final a la prueba, siempre que se esté utilizando SystemD, se podría considerar el uso de x-systemd.device-timeout = 10 tiempo de espera, donde 10 es el número de segundos que uno está dispuesto a esperar durante el inicio.

Terminando

En este artículo, analizamos en profundidad tmpfs dimensionamiento, teniendo en cuenta el caso de uso y otros factores.

También explicamos tmpfs en detalle, descubrió cómo encontrar el tamaño actual de la máquina tmpfs sistema de archivos, y finalmente miró cómo cambiar el tamaño de tmpfs.

¡Disfruta usando tmpfs!

Leave a Comment

You may also like