El free
comando de Linux muestra cuánta memoria de su computadora está en uso y cuánta todavía está disponible para que la utilicen los programas. Su resultado puede ser confuso para los no iniciados, pero le mostraremos cómo entenderlo.
El free
comando imprime un resumen rápido del uso de la memoria en una ventana de terminal. que no tiene muchas opciones o trucos bajo la manga, y no se necesita mucho tiempo y esfuerzo para aprender a usarlo. Sin embargo, aprender a interpretar correctamente la información que proporciona es otra historia. Es muy fácil confundirse con lo free
que te está diciendo.
En parte, esto se debe a la terminología, como la diferencia entre «gratis» y «disponible», y en parte se debe al funcionamiento interno de las rutinas de gestión de la memoria y del sistema de archivos del kernel de Linux. Si tiene memoria libre que el kernel puede hacer un buen uso, la tomará prestada para sus propios fines. Hasta que lo necesites de vuelta.
Vamos a sumergirnos en los mecanismos subyacentes y las rutinas de datos para que pueda apreciar lo que sucede debajo del capó y cómo todo esto afecta el uso de su memoria de acceso aleatorio (RAM).
Arranquemos free
sin opciones y veamos qué obtenemos:
gratis
Eso está envuelto de una manera fea. En su computadora, podrá estirar la ventana de la terminal. Aquí está el resultado en una tabla más ordenada:
caché / beneficio compartido gratuito total usado disponible Mem: 2038576 670716 327956 14296 1039904 1187160 Intercambio: 1557568 769096 788472
Las cifras se dan en kibibytes , que son 1024 bytes. En Manjaro, el free
comando tiene el alias free -m
. Esto obliga free
a utilizar mebibytes , que son 1.048.576 bytes. En otras distribuciones, el valor predeterminado es kibibytes.
La línea superior informa sobre la memoria del sistema, la línea inferior informa sobre el espacio de intercambio. Presentaremos las columnas aquí, luego las veremos con más detalle en breve. Las columnas de la línea de memoria son las siguientes:
Total
– ( Free
+ Buffers
+ Cache
).tmpfs
sistema de archivos.Para la línea de intercambio, las columnas son:
Para separar las Buff/cache
figuras en sus propias columnas, use la -w
opción (ancho):
libre -w
Este es el resultado. En lugar de una Buff/cache
columna, obtenemos una Buffers
columna y una Cache
columna. Aquí están las cifras en una tabla:
caché de búferes compartidos libres usados total disponible Mem: 2038576 683724 265708 14660 94568 994596 1160420 Intercambio: 1557568 761416 796152
Veamos qué representan las cifras de las columnas.
Este es el sencillo. Es la cantidad de RAM que tienes instalada en tu placa base. Este es el valioso recurso por el que se pelean todos los procesos en ejecución. Al menos estarían peleando si el núcleo no estuviera arbitrando.
Por cierto, el lugar de donde free
recopila su información es el /proc/meminfo
pseudoarchivo. Puede echar un vistazo a este archivo usted mismo con el siguiente comando:
menos / proc / meminfo
La salida es una lista única de nombres y valores.
Aquí es donde comienza a ponerse interesante.
La Used
figura representa lo que probablemente esperarías, además de muchas otras cosas. Esta es la memoria que se asigna a los procesos, la toman los programas de usuario y la utilizan cosas como los entornos de escritorio GNOME o KDE . No hay sorpresas ahí. Pero también incluye las cifras Buffers
y Cache
.
La RAM que no se usa para algo es RAM desperdiciada. El kernel usa RAM de repuesto para almacenar cachés y búferes que le permiten operar de manera más eficiente. Por lo tanto, el kernel está utilizando esta RAM para algo, pero no para nada en el espacio del usuario .
Si se recibe una solicitud de memoria que solo se puede atender renunciando parte de la RAM que el kernel está usando para sus propios dispositivos, entonces eso es lo que sucede, sin problemas. Liberar esta RAM y usarla para otras aplicaciones no afectará el funcionamiento correcto de su sistema Linux, nada se romperá, pero podría afectar el rendimiento del sistema.
Entonces, esta columna realmente significa «toda la RAM que está en uso por algo, incluso si se puede recuperar instantáneamente».
Esta columna contiene la cifra de la cantidad de RAM que no está siendo utilizada por nada. Debido a que la Used
columna contiene las cifras de Buffers y Cache, no es raro que los sistemas Linux que funcionan perfectamente tengan muy poca RAM listada como «libre».
Eso no es necesariamente algo malo, y casi con certeza significa que tiene un sistema que funciona perfectamente y que regula el uso de la RAM correctamente. Es decir, la RAM está siendo utilizada por aplicaciones y otros procesos de espacio de usuario y por el kernel en sus esfuerzos por hacer que el rendimiento de su computadora sea lo mejor posible.
La figura de la Shared
columna representa la memoria dedicada a tmpfs
almacenar sistemas de archivos basados en RAM . Se trata de sistemas de archivos que se crean en memoria para facilitar el funcionamiento eficiente del sistema operativo. Para ver qué tmpfs
sistemas de archivos están presentes, use el df
comando .
Las opciones que estamos usando son:
-h
(humano): Utilice unidades sensatas y que mejor se ajusten.--total
: Muestra una línea con los totales en la parte inferior de la salida.--type=tmpfs
: Informe únicamente sobre los tmpfs
sistemas de archivos.df -h --total --type = tmpfs
Lo primero que te llama la atención cuando miras esos valores es que son muchas veces más grandes que la cifra de la Shared
columna. Los tamaños que se muestran aquí son los tamaños máximos de estos sistemas de archivos. En realidad, cada uno solo ocupa la memoria que necesita. La cifra de la Shared
columna es la que se cree para el uso de la memoria.
¿Qué contienen estos sistemas de archivos? Aquí hay un desglose rápido:
created
de pam_systemd para almacenar archivos temporales para este usuario, que tiene el ID de usuario 1000. Este es el usuario actual, usuario dave.Las columnas Buffer
y Cache
solo aparecen si ha utilizado -w
(ancho). Sin la w
opción – , las cifras de estas dos columnas se combinan en la Buff/cache
columna.
Estas dos áreas de la memoria interactúan y dependen una de la otra. El área de caché contiene (principalmente) datos que se han leído del disco duro . Se conserva en caso de que necesite acceder a él nuevamente. Es más rápido hacerlo extrayendo esos datos del caché que leyéndolos del disco duro. La caché también puede contener datos que se han modificado pero que aún no se han vuelto a escribir en el disco duro, o valores que se han calculado y aún no se han guardado en un archivo.
Para realizar un seguimiento de los diversos fragmentos de archivos y alijos de datos, el kernel crea un índice en el área de memoria caché, en el área de memoria intermedia. Los búferes son partes de la memoria que contienen bloques de disco y otras estructuras de información. Estos contienen datos sobre los datos que se almacenan en el área de la memoria caché. Entonces, los búferes son metadatos para el caché.
Cuando se realiza una solicitud de lectura de archivo, el kernel lee los datos en las estructuras de datos del búfer en busca del archivo o fragmento de archivo que se ha solicitado. Si se encuentra, la solicitud se atiende desde el área de la memoria caché a la que apuntan las estructuras de datos del búfer. Si no está presente en el caché, y por lo tanto no está en los metadatos del área de memoria intermedia, el archivo se lee desde el disco duro.
Las estructuras en el área de la memoria intermedia son:
Puede ver por qué tiene sentido condensar la memoria utilizada para el búfer y las áreas de memoria caché en una sola Buff/cache
columna. Son como dos partes de la misma cosa. El área de la memoria caché sería inútil sin el área de la memoria intermedia que proporciona un índice de su contenido.
La columna disponible es la suma de la Free
columna más las porciones de las Buffers
columnas y Cache (o la Buff/cache
columna) que se pueden ceder inmediatamente . La Available
columna es una estimación, no una cifra exacta. Es una estimación informada y precisa, pero no debe tomarse como precisa hasta el último byte.
Para cambiar las unidades en las que se muestran las cifras de forma gratuita, utilice una de las siguientes opciones.
Por ejemplo, para usar valores legibles por humanos, use la -h
opción:
libre -h
free
utilizará la unidad más adecuada para cada valor. Como puede ver, algunos de los valores se muestran en MiB y algunos de ellos están en GiB.
La --total
opción causa libre para mostrar una línea total, que suma los valores de las Total
, Used
y Free
columnas de la Mem y Swap
líneas.
gratis -h --total
La -c
opción (contar) indica free
que se ejecute una determinada cantidad de veces, con una pausa de un segundo entre cada una. Para free
ejecutar dos veces, use este comando:
libre -h -c 2
Si desea ver el efecto que tiene una determinada aplicación en el uso de la memoria, puede ser útil tenerla en free
ejecución continuamente. Esto le permite ejecutar free
en una ventana de terminal mientras inicia, usa y luego cierra la aplicación que está investigando.
La -s
opción (segundos) determina la duración de la pausa entre cada ejecución de free
. Para tener una ejecución libre de forma continua con una pausa de tres segundos entre cada actualización, use este comando:
gratis -s 3
Presione Ctrl+C
para detener el proceso y regresar al símbolo del sistema.
Para free
ejecutar con una pausa específica entre cada actualización, pero detenerse después de una cierta cantidad de informes, combine las opciones -s
(segundos) y -c
(recuento). Para free
ejecutar cinco veces con una pausa de dos segundos entre cada actualización, use este comando:
gratis -s 2 -c 5
Una vez que han aparecido las cinco actualizaciones, el proceso finaliza automáticamente y vuelve al símbolo del sistema.
Esto es de poca utilidad hoy en día, pero si está ejecutando Linux en una computadora de 32 bits, podría resultar útil. Separa el uso de memoria de memoria baja y memoria alta.
En un sistema operativo basado en Linux de 32 bits, la CPU puede utilizar un máximo de 4 GB de memoria. La memoria se divide en memoria baja y memoria alta. La memoria baja se asigna directamente a la parte del kernel del espacio de direcciones. La memoria alta no tiene mapeo directo del kernel. La memoria alta suele estar por encima de 896 MB.
Esto significa que el propio kernel (incluidos sus módulos activos) solo puede hacer uso de poca memoria. Los procesos de usuario, cualquier cosa que no sea el núcleo en sí, pueden potencialmente hacer uso de memoria baja y alta.
En una computadora de 64 bits, no se mostrarán valores para memoria alta:
libre -h -l
Un resumen rápido:
Total
– ( Free
+ Buffers
+ Cache
).tmpfs
sistemas de archivos.Cache
.Free
, Buffer
y Cache
que podría usarse para satisfacer una solicitud de memoria.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…