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 deprocps. - 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
freesignifica necesariamente que queda poca RAM. Linux utiliza memoria libre para caché y esta puede ser recuperada cuando es necesaria. - Confundir la memoria
swapcon la memoria RAM. La swap utiliza almacenamiento secundario y es considerablemente más lenta que la RAM. - Confundir
free -hconfree -m. La primera opción utiliza unidades legibles automáticamente, mientras que-mfuerza la visualización en MiB. - Suponer que la columna
usedrepresenta 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
freecomo única herramienta para investigar problemas de memoria. Para conocer qué procesos están consumiendo RAM es más apropiado utilizar herramientas comotopohtop.
Conceptos relacionados
- Memoria RAM
- Memoria virtual
- Memoria swap
- Kernel
- Caché
- Procesos
- Monitorización del sistema
Comandos relacionados
tophtopvmstatpsswaponcat /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
- Ejecuta
freey observa las unidades utilizadas por defecto. A continuación ejecutafree -hy compara ambas salidas. - Ejecuta
free -hy anota los valores detotal,used,freeyavailablede la filaMem. - Ejecuta
free -h -ty observa la nueva filaTotal. Explica qué cantidades se están sumando. - Compara las salidas de
free -myfree -g. ¿Qué diferencia existe entre las unidades utilizadas? - Ejecuta
free -h -s 2y observa cómo cambian los valores de memoria mientras abres y cierras diferentes aplicaciones. - Ejecuta
free -h -s 2 -c 5. ¿Qué ocurre después de realizar las cinco mediciones? - Abre varias aplicaciones y compara el resultado de
free -hcon el mostrado porhtop. ¿Qué información adicional proporcionahtop? - Consulta el archivo
/proc/meminfomediantecat /proc/meminfoy busca los valores relacionados conMemTotal,MemFree,MemAvailableySwapTotal.
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:
- ¿Qué diferencia existe entre las columnas
freeyavailabledefree -h? - ¿Por qué Linux puede mostrar una cantidad pequeña de memoria
freeaunque el sistema todavía tenga bastante memoria disponible? - ¿Qué diferencia existe entre la memoria RAM y la memoria
swap? - ¿Qué información proporciona la opción
-hy por qué se denomina human-readable? - ¿Qué ocurre al ejecutar
free -h -s 2y por qué puede resultar útil? - ¿Qué diferencia existe entre utilizar
freey utilizarhtoppara 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.