Muchas veces cuando ejecutamos el comando top, nos sorprendemos con que tenemos libre, una cantidad mínima de memoria, a pesar de que en ese momento apenas tengamos unos pocos programas abiertos. Ello es debido a que el kernel gestiona y almacena el caché de las aplicaciones utilizadas anteriormente, para poder acceder a ellas más rapidamente, y reutilizarlas en cualquier momento, ya que el acceso al disco siempre es más lento.
En la inmensa mayoría de los casos esto no supone ningún problema, al contrario, es una manera inteligente de gestionar el sistema, porque en caso de ser necesario lanzar alguna nueva aplicación, se libería automáticamente esa memoria caché.
Pero también puede ser que necesitemos liberar caché de forma inmediata, bien porque queramos deshacernos de algunos procesos zombies o por cualquier otro motivo, para ello podemos en primer lugar medir el consumo de memoria en tiempo real (1 seg.) con el siguiente comando:
watch -n 1 free -m
Si os fijáis en la imágen tengo la memoria casi repleta, con mas de 2 GB de memory cached.
Ahora si quiero eliminar la memoria que no estoy usando tan solo tengo que ejecutar como root el comando:
sysctl -w vm.drop_caches=3
Ahora si vuelvo a ejecutar el comando inicial:
watch -n 1 free -m
vemos que la cosa ha cambiado sustancialmente, apenas 300 MB de RAM Cached.
Vía | TutorFree
Muy buena Joe¡¡ yo siempre ando con Ram justica , era una cosa que tenía pendiente , lo usaré, no lo dudes¡¡ 🙂
Gracias Luweeds!
Un saludo amigo!
Por que cuando doy al botón de compartir en Tw tu artículo no me sale lo de «vía @tannhausser» ? y me sale via wordpress o algo así que no recuerdo…??
Por cierto buen artículo! 😉
Gracias Victor!
Antes tenía dos botones, pero parece que me cargué el que no era 🙂 .Hablando de twitter, redes sociales, etc.. y haciendo offtopic, estoy encantado con feedly (un buen sustituto para Google Reader) y su barra social para compartir artículos (feedly mini).
Te la recomiendo
No uso nada de eso…
Utilizo mi lector de feeds en el navegador y poco más…
Pero gracias por la recomendación, leeré el artículo cuando lo publiques en el blog! jejeje
Saludos.
Buen tip pero faltaron tetas :-/
Nunca están de más 🙂
Siii … no olvides que siempre hay que poner tetas xD ajajajaja
Me parece que os tengo muy viciados a vosotros tres ↓↑
🙂
Muy bueno, creo que lo mismo puede hacerse asi: «echo 3 > /proc/sys/vm/drop_caches»
Aqui mas info sobre esto: http://linux-mm.org/Drop_Caches
Igual prefiero que el kernel administre mi memoria 🙂
Gracias por el link Esteban, explica muy bien los parámetros del comando
Como bien dices tú y Esteban Saracho, el kernel sabe de esto (extrapolando el sentido, libremente…) pero a mí me pasa de vez en cuando que el kernel debe andar tonto, o la memoria o yo que sé, y me cuesta mucho hacer que arranque un programa. Veo el consumo de RAM o de CPU y está disparado. Como comentas, ese momento no es de consumo especial. Días hubo peores y las aplicaciones arrancaban. Imagino que esos serán los días en que intentaré «ayudar» al kernel con tu comando, que me anoto súbito. Espero no volar por los aires…(obviamente, es una broma! ¿Se nota que antes fumaba porros?) Saludos y gracias o al revés…
Muchas gracias por el tip a usarlo ahora
Gracias a ti por comentar!
Saludos!
Amigos hablando de consumo, conocen alguna configuración para que Gnome Shell 3.6 no consuma mucha CPU y por ende no caliente mucho mi notebook, saben me encanta Gnome Shell saben por qué?, porque marca la diferencia de todos los escritorios, es innovación. Uso Fedora 18 64 bits con Gnome Shell 3.6, CPU core i3 con 4 GB de RAM. Espero su ayuda gracias.
Hola Benpaz, yo he utilizado GNOME Shell en equipos mucho mas modestos y no he tenido ese problema de calentamiento que comentas, supongo que será cuestión de gráfica y drivers, mas que de distro.
La verdad creo que mi procesador funciona así, su temperatura máxima normal es de 80 °C, leyendo me gané ese dato así que creo que es normal, otro dato importante es que hay que configurar las revoluciones de los ventildares desde la bios. Gracias por la respuesta.
Muy buen dato!
Gracias hugO!
Un placer verte por aquí!
Hola, pregunta de novel, ¿corro algún riesgo de perder información al ejecutar este comando o lo puedo aplicar en cualquier momento no importa qué o cuántas aplicaciones tenga activas? Gracias!
Hola Eneas!
Este comando lo que hace es liberar la memoria cache, así que en principio no debería afectar a las aplicaciones que en ese momento esten activas!
Lo usé. Todo perfecto. Gracias! (desde xubuntu 12.10)
Yo propongo este comando: watch -n 600 sysctl -w vm.drop_caches=3
y lo explico, ejecuta el comando para liberar cache cada 10 minutos, pueden cambiar el intervalo de tiempo sencillamente cambiando el número 600 por el número de segundos que gusten.
Nota: no olviden ejecutarlo con privilegios.
Una buena solución! lo ejecutas una vez y te olvidas por el resto de la sesión!
Gracias por el apunte!
Gracias
Hola,
Muchas gracias, muy util y sin duda bien explicado; pero tengo una inquietud, para volver al promt despues de ejecutar la orden «watch -n 1 free -m» debo oprimir «control + c» para volver al prompt de la shell o existe otra manera de hacerlo.
Busque pero no encontre un sensor o una herramienta que me de un grafico del uso de la ram… podría alguien darme ese dato? Yo creo que estos valores podrian ser filtrados y redirigidos a una tabla para ser graficados, alguien debe haberlo hecho ya…
Hola, ya intentaste con el monitor del sistema?
Pingback: Como liberar memoria cache | Yassir Meneses.