Explicación del uso de Memoria RAM

Daniel Eugenin M. -

Terminología:

RAM: (Random-Access Memory), es la memoria RAM del Sistema, la que se ve en tamaño y uso con el comando "free".
Swap: es la memoria de intercambio, aquel trozo de disco duro que se utiliza como RAM secundaria cuando ya se ha utilizado al 100%. Obviamente el uso de Swap es muy lento en comparación con la memoria RAM.


Al contrario de lo que la gran mayoría de las personas piensan, el tener 100% de la memoria RAM utilizada NO es perjudicial para el rendimiento, sino que todo lo contrario, es muy bueno para el Sistema Operativo.

A tener en cuenta que la memoria libre es aquella memoria que NO se usa, y, como todo recurso ocioso, éste se desperdicia.

En el caso de Linux, el Sistema Operativo utiliza toda la memoria que no está siendo utilizada con el fin de poder acelerar las lecturas en disco, lo cual es conocido como memoria caché, o buffer. Esta memoria caché es liberada apenas se necesite memoria RAM para algún otro programa, por lo que si bien, no es memoria libre, pasa a serlo apenas se le necesite.

Tener la memoria RAM llena no implica que apenas se tenga que ejecutar algún otro programa, se recurra a la memoria Swap (de intercambio), ya que el Sistema Operativo sólo utilizará la Swap cuando efectivamente no exista físicamente más RAM dispon luego de haber eliminado todos los buffers.

No es de extrañarse entonces que cuando realizamos el comando "free", vemos que la RAM está siendo utilizada casi al 100, como en el siguiente ejemplo:

Captura_de_pantalla_2012-07-17_a_la_s__15.11.45.png


Del ejemplo anterior se puede observar que hay 16 GB de RAM en el Sistema, de los cuales se está utilizando casi los 16 GB, sin embargo existe:

* 368 MB de RAM libre

* 275 MB de buffer

* 3,3 GB de cache

Lo cual nos indica que hay casi 4 GB (368MB+275MB+3,3GB) de memoria RAM efectivamente disponibles para utilizar.

 

De hecho, existe un procedimiento para hacer una "liberación" de la memoria que está en buffers y caché, la cual la tenemos detallada en el siguiente enlace: https://itlinux.zendesk.com/entries/21684691-liberacion-de-memoria.

 

Realizando este procedimiento anterior, ahora vemos que el Sistema Operativo ha quedado con 12,5 GB de RAM utilizada, y casi 4 GB de RAM libre, quedando los buffer y caché con lo mínimo.

Captura_de_pantalla_2012-07-17_a_la_s__15.21.30.png

 

No hay ningún problema en ejecutar el procedimiento anterior, pero después de realizar esto, con el tiempo, el Sistema Operativo volverá a desplegar la memoria al 100%, pero teniendo mayor cantidad de buffer y caché utilizada.

 

En instalaciones de Zimbra y otros programas esto es totalmente normal y, como se ha mencionado anteriormente, no es un indicador que la memoria está físicamente utilizada al 100%, sino que sólo nos damos cuenta cuando se está utilizando Swap.

 

 

Entendiendo el significado de la salida del comando free:

Captura de pantalla 2012-07-12 a la(s) 10.20.37.png

 

* Todos los valores están expresados en bloques de 1024 bytes

* Aquí se ve un sistema con cerca 64 GB de RAM, y con 40 GB actualmente en uso

* La columna "shared" indica el monto de la memoria que está compartida entre múltiples procesos. Aquí se observa que hay 0 MB de memoria que está siendo compartida.

* La columna "buffers" muestra el monto de la memoria que está siendo utilizada por el kernel para buffer cache. El buffer cache es utilizado para acelerar las operaciones de disco, permitiendo lecturas y escrituras de disco que sean servidas directamente desde la memoria. El tamaño del baffuer cache será incrementado o reducido de acuerdo a los cambios del uso de memoria del sistema. Esta memoria es reclamada si es necesitada por las aplicaciones. Por lo tanto, aunque vemos que hay cerca de 40 GB de memoria utilizada, no toda está siendo utilizada por las aplicaciones.

* La columna "cache" indica cuántas páginas de memoria el kernel tiene cacheada para accesos más rápidos. La memoria utilizada por los buffers y cache pueden ser  reclamadas para el uso de las aplicaciones.

* La segunda línea (-/+ buffers/cache) provee una indicación de la memoria actualmente usada por las aplicaciones (columna "used") o disponible para las aplicaciones (columna "free"). La suma de la memoria utilizada por los buffers y caché reportada en la primera línea es restada del total de la memoria utilizada y agregada al total de la memoria libre para darnos las 2 figuras de la segunda línea.

* En la tercera línea se observa la cantidad total de Swap, utilizada y disponible.

0 Comentarios

Inicie sesión para dejar un comentario.
Tecnología de Zendesk