-->

Comando free

free

El comando free es una herramienta de línea de comandos disponible en sistemas Linux que permite consultar de forma rápida el estado de la memoria RAM y de la memoria swap. Muestra la cantidad de memoria total, utilizada, disponible y libre, además del espacio de intercambio utilizado por el sistema.

Categoría Sistema y monitorización
Disponible en Linux (Debian / Ubuntu / derivadas)
Equivalente en Windows systeminfo, Administrador de tareas, PowerShell (Get-CimInstance Win32_OperatingSystem)
Sustituye a No sustituye a otro comando concreto. Forma parte del conjunto de herramientas tradicionales de monitorización de sistemas Linux.
¿Requiere permisos de administrador? No. La consulta de la memoria del sistema está disponible para usuarios normales.

¿Qué significa su nombre?

FREE es una abreviatura del término inglés free, que significa libre o disponible.

El nombre hace referencia a su función principal: mostrar información sobre la memoria RAM disponible y la memoria swap utilizada por el sistema operativo.

¿Para qué sirve?

El comando free sirve para consultar el estado de la memoria principal del sistema. Permite conocer cuánta memoria RAM está instalada, cuánto espacio está siendo utilizado, cuánto permanece libre y cuánta memoria está disponible para que las aplicaciones puedan utilizarla.

También muestra información sobre la memoria swap, un espacio de almacenamiento utilizado por Linux como extensión de la memoria RAM cuando es necesario. La swap normalmente se encuentra en una partición o en un archivo del disco y es considerablemente más lenta que la RAM.

Es importante distinguir entre memoria libre y memoria disponible. Linux utiliza parte de la RAM aparentemente libre como caché para mejorar el rendimiento. Por este motivo, una cantidad pequeña en la columna free no significa necesariamente que el sistema tenga poca memoria disponible.

Sintaxis

free [opción]

Las opciones más habituales son:

Opción Descripción
-h / --human Muestra las cantidades en unidades legibles para las personas, como KiB, MiB o GiB.
-b / --bytes Muestra las cantidades en bytes.
-k / --kibi Muestra las cantidades en kibibytes (KiB). Es la unidad utilizada por defecto en muchas versiones.
-m / --mebi Muestra las cantidades en mebibytes (MiB).
-g / --gibi Muestra las cantidades en gibibytes (GiB).
-t / --total Añade una fila con el total de memoria RAM y swap combinadas.
-s [segundos] / --seconds [segundos] Repite la información periódicamente cada número de segundos indicado.
-c [veces] / --count [veces] Indica cuántas veces debe repetirse la salida cuando se utiliza -s.

Comandos más utilizados

Comando Descripción
free Muestra información básica sobre la memoria RAM y la memoria swap.
free -h Muestra la memoria utilizando unidades fáciles de interpretar, como MiB o GiB.
free -m Muestra las cantidades expresadas en MiB.
free -g Muestra las cantidades expresadas en GiB.
free -t Añade el total combinado de RAM y swap.
free -h -s 2 Actualiza la información automáticamente cada dos segundos.
free -h -s 2 -c 5 Muestra la información cada dos segundos y termina después de cinco mediciones.

Equivalencia con otros sistemas

Acción Linux Windows
Consultar memoria RAM free -h Administrador de tareas → Rendimiento → Memoria
Consultar memoria disponible free -h Administrador de tareas → Rendimiento → Memoria
Consultar swap free -h Archivo de paginación / Memoria virtual
Consultar memoria desde terminal free -h systeminfo / PowerShell

Ejemplos

Mostrar información básica sobre la memoria

free

Mostrar la memoria en un formato fácil de leer

free -h

Mostrar la memoria expresada en MiB

free -m

Mostrar la memoria expresada en GiB

free -g

Mostrar el total combinado de RAM y swap

free -h -t

Actualizar la información cada dos segundos

free -h -s 2

Realizar cinco mediciones con dos segundos de intervalo

free -h -s 2 -c 5

Ejemplo de salida

$ free -h
               total        used        free      shared  buff/cache   available
Mem:            15Gi        6.1Gi       2.3Gi       512Mi       7.0Gi       8.8Gi
Swap:          2.0Gi          0B       2.0Gi

¿Cómo interpretar la salida?

  • total: cantidad total de memoria disponible en esa categoría.
  • used: memoria que está siendo utilizada actualmente. En la fila Mem, esta cifra incluye memoria utilizada por aplicaciones y otros usos del sistema, aunque la interpretación exacta depende de la versión de procps.
  • free: memoria que actualmente no está siendo utilizada.
  • shared: memoria utilizada principalmente por sistemas de archivos temporales compartidos, como tmpfs.
  • buff/cache: memoria utilizada por búferes y cachés del kernel que puede ser recuperada cuando las aplicaciones necesitan memoria.
  • available: estimación de la cantidad de memoria que puede utilizarse para iniciar nuevas aplicaciones sin recurrir a la swap.

En la fila Mem se muestra información sobre la RAM, mientras que la fila Swap muestra información sobre el espacio de intercambio.

En el ejemplo anterior, el ordenador tiene 15 GiB de RAM. Aunque solamente aparecen 2,3 GiB libres, hay aproximadamente 8,8 GiB disponibles. Esto ocurre porque Linux aprovecha parte de la memoria que no está siendo utilizada directamente por las aplicaciones para mantener cachés y acelerar el acceso a los datos.

Por tanto, para valorar si un sistema se está quedando sin RAM, la columna available suele ser más útil que la columna free.

Errores habituales

  • Interpretar que tener poca memoria en la columna free significa necesariamente que queda poca RAM. Linux utiliza memoria libre para caché y esta puede ser recuperada cuando es necesaria.
  • Confundir la memoria swap con la memoria RAM. La swap utiliza almacenamiento secundario y es considerablemente más lenta que la RAM.
  • Confundir free -h con free -m. La primera opción utiliza unidades legibles automáticamente, mientras que -m fuerza la visualización en MiB.
  • Suponer que la columna used representa exclusivamente la memoria ocupada por los programas abiertos. Parte de la memoria puede estar siendo utilizada por el kernel, cachés y otros componentes del sistema.
  • Utilizar free como única herramienta para investigar problemas de memoria. Para conocer qué procesos están consumiendo RAM es más apropiado utilizar herramientas como top o htop.

Conceptos relacionados

  • Memoria RAM
  • Memoria virtual
  • Memoria swap
  • Kernel
  • Caché
  • Procesos
  • Monitorización del sistema

Comandos relacionados

  • top
  • htop
  • vmstat
  • ps
  • swapon
  • cat /proc/meminfo

Curiosidades

El comando free obtiene gran parte de la información que muestra a partir de los datos proporcionados por el kernel de Linux, especialmente mediante el archivo virtual /proc/meminfo.

Una de las características más importantes de Linux es que intenta aprovechar al máximo la RAM disponible utilizando memoria como caché. Por este motivo, es habitual que un sistema Linux aparentemente tenga poca memoria free incluso cuando todavía dispone de una cantidad considerable de memoria available.

La opción -h de free significa human-readable y no help. Es un buen ejemplo de que las opciones cortas de los comandos Linux no tienen un significado universal: su significado depende del programa concreto.

Prácticas propuestas

  1. Ejecuta free y observa las unidades utilizadas por defecto. A continuación ejecuta free -h y compara ambas salidas.
  2. Ejecuta free -h y anota los valores de total, used, free y available de la fila Mem.
  3. Ejecuta free -h -t y observa la nueva fila Total. Explica qué cantidades se están sumando.
  4. Compara las salidas de free -m y free -g. ¿Qué diferencia existe entre las unidades utilizadas?
  5. Ejecuta free -h -s 2 y observa cómo cambian los valores de memoria mientras abres y cierras diferentes aplicaciones.
  6. Ejecuta free -h -s 2 -c 5. ¿Qué ocurre después de realizar las cinco mediciones?
  7. Abre varias aplicaciones y compara el resultado de free -h con el mostrado por htop. ¿Qué información adicional proporciona htop?
  8. Consulta el archivo /proc/meminfo mediante cat /proc/meminfo y busca los valores relacionados con MemTotal, MemFree, MemAvailable y SwapTotal.

Consejo: Cuando quieras comprobar rápidamente si un equipo está quedándose sin memoria RAM, utiliza free -h y presta especial atención a la columna available. Si necesitas averiguar qué procesos están consumiendo la memoria, combina esta información con top o htop.

Preguntas de reflexión:

  1. ¿Qué diferencia existe entre las columnas free y available de free -h?
  2. ¿Por qué Linux puede mostrar una cantidad pequeña de memoria free aunque el sistema todavía tenga bastante memoria disponible?
  3. ¿Qué diferencia existe entre la memoria RAM y la memoria swap?
  4. ¿Qué información proporciona la opción -h y por qué se denomina human-readable?
  5. ¿Qué ocurre al ejecutar free -h -s 2 y por qué puede resultar útil?
  6. ¿Qué diferencia existe entre utilizar free y utilizar htop para analizar el consumo de memoria de un sistema?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué diferencia existe entre las columnas free y available de free -h?

free representa la memoria que actualmente no está siendo utilizada, mientras que available es una estimación de la memoria que puede utilizarse para iniciar nuevas aplicaciones sin necesidad de recurrir a la swap. La segunda suele ser un indicador más útil para saber si el sistema dispone de memoria suficiente.


2. ¿Por qué Linux puede mostrar una cantidad pequeña de memoria free aunque el sistema todavía tenga bastante memoria disponible?

Linux utiliza parte de la RAM que no necesitan directamente las aplicaciones para almacenar cachés y búferes. Esto permite acelerar determinadas operaciones del sistema. Cuando una aplicación necesita más memoria, buena parte de estos recursos puede liberarse. Por este motivo, una cifra pequeña en free no significa necesariamente que exista un problema de memoria.


3. ¿Qué diferencia existe entre la memoria RAM y la memoria swap?

La RAM es la memoria principal y de alta velocidad utilizada directamente por el sistema operativo y las aplicaciones. La swap es un espacio situado normalmente en una partición o archivo del almacenamiento secundario que Linux puede utilizar como memoria de intercambio cuando la RAM resulta insuficiente o para determinadas operaciones de gestión de memoria. El almacenamiento es mucho más lento que la RAM, por lo que un uso intensivo de swap puede reducir considerablemente el rendimiento.


4. ¿Qué información proporciona la opción -h y por qué se denomina human-readable?

La opción -h muestra las cantidades utilizando unidades como KiB, MiB o GiB, en lugar de presentar únicamente grandes cantidades numéricas. Se denomina human-readable porque facilita la interpretación de los tamaños por parte de las personas. En el caso concreto de free, -h no significa help.


5. ¿Qué ocurre al ejecutar free -h -s 2 y por qué puede resultar útil?

El comando muestra la información de memoria y vuelve a mostrarla automáticamente cada dos segundos. Esto permite observar cómo varía el consumo de RAM y swap mientras se ejecutan o cierran programas. Para detener la ejecución se puede pulsar Ctrl+C.


6. ¿Qué diferencia existe entre utilizar free y utilizar htop para analizar el consumo de memoria de un sistema?

free proporciona un resumen global de la memoria RAM y swap del sistema, mientras que htop permite además observar los procesos individuales y cuánto CPU y memoria consume cada uno. Por tanto, free resulta adecuado para obtener una visión rápida del estado general de la memoria y htop para investigar qué procesos están provocando el consumo.