El comando free en Linux: ver el uso de memoria RAM y swap

Introducción

En los sistemas operativos tipo Unix, especialmente en Linux, el control de los recursos de hardware es fundamental para garantizar el rendimiento y la estabilidad de las aplicaciones. Uno de los recursos más críticos es la memoria, ya que tanto la RAM como el espacio de intercambio (swap) influyen directamente en la capacidad del sistema para manejar procesos simultáneos. El comando free se ha convertido en una herramienta estándar y rápida para obtener una instantánea del uso de memoria en tiempo real. En este artículo exploraremos su funcionamiento, las opciones más útiles y cómo interpretar sus datos para tomar decisiones informadas en la administración de servidores y estaciones de trabajo.

Qué es el comando free

Free es un programa incluido en el paquete procps-ng que muestra la cantidad de memoria libre y utilizada, así como el espacio de swap, en unidades legibles por el usuario. A diferencia de otras utilidades que requieren permisos especiales o configuraciones complejas, free se ejecuta directamente desde la terminal y presenta la información en un formato tabular sencillo. Su origen se remonta a los primeros kernels de Linux, donde la necesidad de monitorizar la memoria llevó a crear una utilidad ligera que pudiera ser usada tanto por administradores como por desarrolladores para depurar problemas de rendimiento.

Sintaxis y opciones principales

La sintaxis básica del comando es: free [opciones]. Sin opciones, free muestra la memoria en kilobytes. Las opciones más habituales incluyen:

  • -b, –bytes: muestra los valores en bytes.
  • -k, –kilobytes: muestra en kilobytes (valor predeterminado).
  • -m, –megabytes: muestra en megabytes.
  • -g, –gigabytes: muestra en gigabytes.
  • -h, –human: presenta los datos con unidades legibles automáticamente (ej. 1.2G, 45M).
  • -s : actualiza la salida cada número de segundos especificado.
  • -c : repite la visualización un número determinado de veces antes de terminar.
  • -t, –total: agrega una fila que muestra el total de RAM más swap.
  • -lo, –low: omite la columna de buffers/cache para una vista más simple.

Estas opciones permiten adaptar la salida a las necesidades del momento, ya sea para una revisión rápida o para un monitoreo continuo.

Interpretación de la salida

La salida típica de free (sin opciones) se presenta así:

              total        used        free      shared  buff/cache   available
Mem:       8056744    3421128    2745600      123456     1889016    3890000
Swap:      2097148           0    2097148

Cada columna tiene un significado específico:

  • total: cantidad total de memoria disponible (RAM o swap).
  • used: memoria actualmente en uso por procesos y el kernel.
  • free: memoria totalmente sin usar.
  • shared: memoria utilizada por sistemas de archivos temporales (tmpfs) y otras comparticiones.
  • buff/cache: memoria usada por el kernel para buffers de entrada/salida y caché de archivos; esta memoria puede liberarse rápidamente si es necesario.
  • available: estimación de cuánta memoria está realmente disponible para lanzar nuevas aplicaciones sin recurrir al swap, teniendo en cuenta que parte del buff/cache puede reutilizarse.

En la fila de Swap se indica cuánto del espacio de intercambio está ocupado; un uso elevado de swap puede señalar presión de memoria y posible degradación del rendimiento.

Ejemplos prácticos

Algunos ejemplos de uso cotidiano:

  1. Ver la memoria en formato legible:

    free -h

    Salida:

                  total        used        free      shared  buff/cache   available
    Mem:           7,8G        3,3G        2,6G        120M        1,8G        3,7G
    Swap:          2,0G          0B        2,0G
    
  2. Monitorear cada 5 segundos durante 30 segundos:

    free -s 5 -c 6

  3. Mostrar solo el total de RAM más swap:

    free -t

  4. Obtener los valores en megabytes sin decimales:

    free -m

  5. Combinar opciones para un informe rápido:

    free -h -t

Estos comandos pueden incluirse en scripts de monitoreo o en herramientas como watch para crear paneles de control personalizados.

Consejos para administradores

  • Utilice free -h para obtener una visión rápida y legible durante revisiones de rutina.
  • Combine free con herramientas como top, htop o vmstat para correlacionar uso de memoria con actividad de CPU y procesos.
  • Establezca umbrales de alerta: si el campo ‘available’ cae por debajo del 20% de la RAM total, considere revisar los procesos que consumen más memoria.
  • Recuerde que una alta cantidad de memoria en buff/cache es normal y beneficiosa; no la interprete como memoria desperdiciada.
  • En entornos virtuales, verifique que el swap asignado al invitado sea suficiente; un swap constante puede indicar que el host está sobrecargado.
  • Documente los valores baseline de free en su infraestructura para detectar tendencias de crecimiento de uso de memoria con el tiempo.

Conclusión

El comando free sigue siendo una de las formas más simples y efectivas de inspeccionar la memoria RAM y el swap en Linux. Su salida clara, sus opciones de formato y su bajo consumo de recursos lo hace indispensable tanto para administradores de sistemas experimentados como para usuarios que desean entender el comportamiento de sus máquinas. Dominar free permite detectar cuellos de botella de memoria, planificar actualizaciones de hardware y mantener un rendimiento óptimo en cualquier entorno Linux.