Como sacar el porcentaje de memoria libre en linux

Muchas ocasiones me he topado con que los clientes internos y externos solicitan el estado de la memoria y muchas veces no les interesa la cantidad de gigas libres, sino el porcentaje, ya que 2 GB libres no es lo mismo cuanto tiene 4 Gb de RAM a que cuando tienes 256 GB de ram y solo tienes 2 GB libres que se pueden consumir en un segundo. Aquí te digo como puedes tener un porcentaja aproximado de memoria libre con un comando no tan simple pero que es mejor que estar haciendo cuentas cadas ves.

Como sacar el porcentaje de memoria libre en linux

Como administrador de sistemas es siempre importante tener un sistema de monitoreo que esté midiendo los recursos disponibles del sistema y sobre todo que te permita ver el historico, es decir, en un punto en el tiempo como estaba y ver cuando subio o bajo el uso de un recurso. Para esto siempre es bueno instalar aplicaciones como Nagios, Zabbix o algun otro.

Pero siempre está la necesidad de ir a un host y ver el estado del equipo en este momento y cuando solo hay disponible la linea de comandos. Para esto pues hay comandos como top, htop, vmstat o free

Pero ninguno te da el porcentage de memoria ocupada o libre como tal, así que me puse a ver como hacer uno que (aunque no exacto, es un trabajo en desarrollo) pudiera var una idea de la memoria ocupada y libre.

Para este comendo usaremos el comando free, pero usaremos los valores que genera para calcular el porcentaje. Así puedes tener ese % de memoria libre y memoria ocupada en porcentajes:

free | awk '/Mem/{printf("Memory used: %.2f%"), $3/$2100} /Mem/{printf(" free: %.2f%\n"),($6+$4)100/$2}'

No parece muy entendible, pero lo que hace es que calcula el porcentaje en base a la memoria total en función de la memoria usada y libre, que es la memoria libre mas la memoria buffer/cache.

Un ejemplo de la salida de este comando es esta:

$ free | awk '/Mem/{printf("Memory used: %.2f%"), $3/$2100} /Mem/{printf(" free: %.2f%\n"),($6+$4)100/$2}'
Memory used: 50.57% free: 49.43%

En algunos casos este valor puede no ser exacto, pero te da un valor a presentar que ayudará a algún DBA, un Project Manager o algún otro cliente a tomar una decisión sobre el host. La verdad es que es mucho mas legible o claro en la idea el porcentaje anterior que lo que obtienes con el comando free:

$ free
        total    used    free shared buff/cache available
Mem: 15932424 8119052 3509312 1044164   4304060   6431212
Swap: 2080764       0 2080764 

Aun cuando solo veas los gigas de memoria libre es mas sencillo mostrar un porcentaje.

$ free -g
     total used free shared buff/cache available
Mem:    15    7    3      0          4         6
Swap:    1    0    1

Espero que te sirva para que puedas tener un dato que se de información rápida y práctica sobre el estado de la memoria de un host ya sea Centos, RHEL, Debian o cualquier otro linux que tenga el comando free.

This entry was posted in Comandos Linux and tagged , , , , . Bookmark the permalink.

One Response to "Como sacar el porcentaje de memoria libre en linux"

Responder a Ulan Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.