Entendiendo el comando Free

Existen varias maneras de chequear la cantidad de memoria RAM utilizada o no que nuestro equipo pueda llegar a tener. Podemos usar Top, Htop u otros comandos para poder establecer cual es nuestra memoria RAM libre en el sistema.

El comando Free es una exelente opcion para esto cuando necesitamos un pantallazo rápido de cuanta memoria RAM nos queda libre. Este comando lee el archivo /proc/meminfo y lo presenta de una manera mas agradable. El comando free tiene, entre otras, estas opciones:

  • -c Cantidad de muestras que querramos tener de la salida del comando
  • -b,k,m,g Muestra los valores en Bytes, Kilobytes, Megabytes, Gigabytes respectivamente.
  • -s [sec] Muestra continuamente la salida del comando cada los segundos que le digamos

Las columnas significan:

  • Total: Memoria total disponible
  • Used: Memoria consumida
  • Free: Memoria libre
  • Shared: Memoria compartida
  • Buffers: Esta compuesta por memoria de acceso a disco, red, temp filesystems, etc
  • Cache: Memoria cache

Las lineas son:

  • Mem: Muestra los valores de la memoria RAM fisica.
  • -/+ buffers/cache: Muestra la cantidad de memoria actualmente dedicada a las memorias intermedias del sistema (buffers y chache).
  • Swap: Muestra los valores de la memoria de intercambio.

Ahora bien, para saber exactamente cuanta memoria RAM queda disponible para las applicaciones tenemos que buscar el valor de la linea -/+ buffers/cache y la columna free. Aqui vemos un ejemplo de un equipo virtual con Debian testing sin nada de carga con 256MB de memoria RAM.

Los sistemas operativos como Linux en general tienen poca memoria RAM física disponible ya que esta ultima la utiliza para cachear. El valor que nosotros tomas es el valor de memoria libre que el sistema operativo puede liberar para poder ser utilizada por alguna aplicación que la necesite.

Podemos calcular cual es la memoria utilizada por el sistema con la siguiente formula:

Memoria utilizada = Used – Shared – Bufers – Cached

Estos valores son los de la primer linea, donde en nuestro ejemplo sera:

Memoria utilizada = 35 – 0 – 6 – 17
Memoria utilizada = 12

El valor es igual al valor de memoria utilizada de la linea -/+ buffers/cache.

Para averiguar nuestra memoria libre dentro de nuestro sistema podemos calcularla de la siguiente manera:

Memoria Libre: Free + shared + buffers + cached

Lo que seria en nuestro caso:

Memoria Libre: 213 + 0 + 6 + 17
Memoria Libre: 236

Como se puede ver, el valor es el mismo que se encuentra en la linea -/+ buffers/cache y la columna free.

Por lo tanto el valor free de la columna -/+ buffers/cache nos va a dar el total de la memoria libre que tiene en ese momento nuestro sistema.

3 Comentarios

  1. excelente! mucho buscaba sobre como saber realmente la memoria utilizada y disponible..
    en varias paginas informa erroneamente que es «free» nomas..pero aca esta bien clarito..
    tuxfiles a marcadores!

Deja un comentario