Entendiendo el comando free

  |   Código fuente

Licencia Creative Commons
Entendiendo el comando free por Sergio Belkin se encuentra bajo una Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported.

El comando free es habitualmente utilizado para ver el estado de la memoria del sistema. Pero para muchos usuarios los resultados que muestra pueden resultar confusos.

Así que abramos una consola y ejecutemos el comando free -m, en este caso en un entorno KDE con Firefox y otras aplicaciones abiertas…
Analicemos la primer fila y sus respectivas columnas:

total used free shared buffers cached
Mem: 3898 3342 556 0 36 652
-/+ buffers/cache: 2653 1245
Swap: 7999 524 7475
  • total: Es la memoria RAM total disponible (la cantidad real es 4096 pero teóricamente hay unos 198 MB reservados por el kernel en este caso).
  • used: Muestra que hay 3342 MB usados. ¿Parece demasiado, no es cierto? Sin embargo, esa cifra incluye también la memoria reservada tanto en los buffers como la que está cacheada.
  • free: Muestra solamente 556 MB libres, de nuevo puede impresionarnos un valor tan bajo.
  • shared: No hay que prestarle importancia a este valor, ya que es obsoleto.
  • buffers: Es parte de la memoria que almacena información acerca de los bloques, que son cantidades discretas de información que se guarda en un dispositivo de almacenamiento, por ejemplo, un disco rígido. ¿Qué ventaja tiene eso? Por ejemplo aumentar la velocidad de operaciones relacionadas con el acceso al sistema de archivos. Hágase la siguiente operación para verificarlo: Ejecute dos veces seguidos un comando como el siguiente:

sync && echo 3 > /proc/sys/vm/drop_caches
time find /var -mmin +10
time find /var -mmin +10

Se podrá notar que la segunda vez que se ejecuta el comando el tiempo que demora la tarea es significativamente menor.

  • cached: Es parte de la memoria que se usa para acceder con mayor rapidez al sistema de almacenamiento persistente (generalmente un disco dígido). Siempre es más rápido extraer datos de la memoria RAM que de un disco electromecánico. Para comprobarlo, se puede realizar la siguiente operación:

time tar cvzf -9 etc.tar.gz  /etc/
time tar cvzf -9 etc.tar.gz  /etc/

La segunda vez el tarball se creará mucho más rápidamente.

La tercer fila muestra la cantidad de memoria usada y libre activamente por las aplicaciones, es decir en este caso no se cuenta la memoria utilizada ni por los buffers ni por el caché.

La cuarta fila finalmente muestra las estadísticas de la memoria del área de intercambio, que en Linux es generalmente una partición específica, el sistema operativo echa mano de ella cuando la memoria RAM se va a agotando.

Resumiendo:

Memoria Potencialmente Libre=Free+Buffers+Cached

Memoria usada por los datos de las aplicaciones=Used-Buffers-Cached

Nota: Si se hacen los cálculos mencionados se verá alguna diferencia en MB, tener en cuenta que la opción “-m” convierte KB a MB quitando la parte decimal, por lo tanto para entenderlo mejor, primero sería conveniente ejecutando el comando free a secas.

¿Hay una manera gráfica de esto?

Por supuesto, por ejemplo usando KInfocenter

KInfocenter mostrando el uso de la memoria en Linux

Pero ahora el lector sabrá entender mejor el resultado de esos gráficos tan bonitos :)

Comments powered by Disqus