X

Liberar memoria cache de la RAM

Liberar memoria cache de nuestra RAM es el primer post de una serie para optimizar el uso de la RAM en nuestros ordenadores y de esta forma poder sacar siempre el máximo rendimiento a nuestro ordenador. Los post que se crearán durante las próximas semanas  son:

  1. Liberar memoria cache de nuestra RAM.
  2. Limitar el uso de nuestra memoria Swap y limpiarla en el caso que se active.
  3. Usar la RAM más eficientemente con ZRAM.
  4. Acelerar el inicio de nuestras aplicaciones con Preload.
  5. Acelerar el inicio de nuestras aplicaciones con Prelink.
  6. Aligerar el rendimiento de nuestro sistema operativo con Zswap.

Por lo tanto por el orden establecido iniciamos el primer post de la serie:

LIBERAR MEMORIA CACHE DE LA RAM

Particularmente uso este tip y pienso que es útil. No obstante en teoría para máquinas potentes no se debería notar mucha diferencia en el rendimiento que obtenemos ya que en principio lo que se almacena y borra en la memoria cache de nuestra RAM es controlado por nuestro Kernel. Con la siguiente explicación podrán comprender como funciona nuestra memoria cache.

¿Cómo funciona la memoria cache?

Nuestra memoria RAM se subdivide en varias partes. Una parte de la memoria se denomina SRAM o RAM estática y otra parte de llama DRAM o RAM dinámica. La parte de la memoria que denominamos SRAM es la memoria rápida y la que denominamos cache. ¿Cómo funciona la memoria cache o SRAM?

Cuando ejecutamos un programa, por ejemplo Libreoffice, se tiene que cargar en nuestra memoria y posteriormente arrancar. El proceso descrito puede tener una duración de tranquilamente 6 o 7 segundos. Una vez cerremos Libreoffice parte de la información que se ha cargado a la memoria quedará almacenada de forma permanente en nuestra memoria SRAM o cache de tal forma que cuando volvamos a ejecutar libreoffice nuestro ordenador primero mirará si tenemos almacenada la información necesaria en la SRAM o cache, y como en este caso ya tenemos la información en nuestra memoria la aplicación arrancará mucho más rápido que la primera vez.

Si además de Libreoffice arrancamos muchos más programas como por ejemplo Firefox, Chrome, gimp, etc. llegará a un punto que nuestra memoria SRAM o cache está llena y en teoría esto debería perjudicar al rendimiento de nuestro equipo. Pero en este punto entra en acción nuestro Kernel. En esta situación el Kernel de nuestro ordenador se encargará de gestionar inteligentemente la cache (SRAM) de nuestro equipo. Así que cuando detecte que nuestra SRAM o cache está llena procederá a vaciarla de forma inteligente y borrando siempre los datos que más nos conviene para obtener el mejor rendimiento posible. Por esto a priori no es necesario hacer un vaciado de la memoria cache.

¿Por qué considero que es necesario liberar memoria cache?

A pesar de la gestión que puede hacer el kernel considero que hacer limpieza de la cache es provechoso debido a los siguientes motivos:

  1. En determinados casos y en ordenadores poco potentes, como por ejemplo un ASUS Eee PC que a veces utilizo, el kernel no gestiona eficientemente la cache de nuestro ordenador. Mi experiencia con un ASUS Eee PC y Xubuntu es que cuantas mas horas lo uso mas se sobrecarga la swap y la memoria cache. Al día de estar funcionando, y dependiendo del uso que le doy, me quedo sin memoria cache y la memoria swap se dispara. El resultado es un sistema muy lento.
  2. Una cosa es la teoría y otra la práctica. Si tenéis el ordenador permanentemente funcionando y nunca se apaga la memoria cache tarde o temprano acabará saturándose. En teoría no debería pasar pero pasa.
  3. Puede resultar útil liberar la cache justo después de cerrar una aplicación muy pesada para posteriormente arrancar otra aplicación que también sea muy pesada.

¿Cómo liberar memoria cache de nuestra RAM?

Para realizar la limpieza podemos generar un script muy básico y simple. El script lo podemos hacer de la siguiente forma: Creamos un archivo en nuestra home que se llame limpiamemoria.sh. Para crearlo abrimos una terminal y teclemaos:

sudo gedit limpiamemoria.sh

Dentro del archivo copiamos el siguiente texto   (antes de copiar el texto ver nota):

#!/bin/bash
echo “Limpiando la caché~ “;
sync ; echo 1 > /proc/sys/vm/drop_caches
sync ; echo 2 > /proc/sys/vm/drop_caches
sync ; echo 3 > /proc/sys/vm/drop_caches
Nota: En el script hay una frase de color rojo, otra de color verde y otra de color negro, Solo debemos copiar una de las tres frases en función de lo agresivos que queremos ser en limpiar nuestra cache. Si elegimos la frase de color rojo es la opción menos agresiva mientras que si elegimos la frase de color negro estamos eligiendo la opción más agresiva.

Una vez definido el texto del script tanto tenemos que guardar y cerrar.

Antes de seguir adelante es importante hace un paréntesis y comprender lo que estamos haciendo con el comando que se ejecuta en el script. El comando que estamos ejecutando es:

sync ; echo (1,2 o 3) > /proc/sys/vm/drop_caches

Con este comando lo que hacemos es modificar el archivo drop_caches que se halla en la ubicación /proc/sys/vm/. Este archivo tiene 4 valores posibles. En función del valor que le asignamos a este archivo nuestro kernel actuará de una forma u otra con la información que tenemos almacenada en nuestra cache. Los posibles valores que podemos definir en el archivo son:

  • 0: Es el valor por defecto siempre que arrancamos nuestro ordenador. Si dejamos este comando no se liberara absolutamente nada de nuestra memoria cache.
  • 1: Equivaldría a usar el script con «echo 1 > /proc/sys/vm/drop_caches». Al ejectuar el script con este valor estamos forzando a nuestro kernel a liberar la pagecache.
  • 2: Equivaldría a usar el script con «echo 2 > /proc/sys/vm/drop_caches». Al ejectuar el script con este valor estamos forzando a nuestro kernel a liberar los inodos y dentries.
  • 3: Equivaldría a usar el script con «echo 3 > /proc/sys/vm/drop_caches». Al ejectuar el script con este valor estamos forzando a nuestro kernel a liberar la pagecache, los inodos y las dentries.
Nota: Podéis elegir tranquilamente la opción más agresiva de las 3. Si os fijáis en el script aparece el comando sync. Con el comando sync aseguramos que solo se liberen de la cache los objetos que no estamos usando actualmente. Por lo tanto a priori no hay peligro de cuelgues ni estabilidad en realizar esta operación.
Nota: Si elegimos la opción 3 estaremos borrando los inodos, dentries y pagecache. Los inodos contienen meta-información de archivos individuales como por ejemplo el propietario, el grupo, la fecha de creación, la hora de creación etc, así como también los bloques del disco duro que contienen la información que acabamos de citar. Las dentries contienen información para enlazar los nombres de los distintos directorios con los ficheros que contienen para de esta forma acceder más rápido a nuestras aplicaciones. Mientras que la pagecache almacna copias de los bloques de nuestro disco duro.

A estas alturas ya solo nos queda ejecutar el script. Para ejecutar el script primero tenemos que darle permisos. Para darle permisos abrimos una terminal en la misma ruta donde hemos guardado el script y tecleamos:

sudo chmod +x limpiamemoria.sh

Antes de ejectuar el script tecleamos en la terminal el comando:

free

Y obtenemos el siguiente resultado:

En la captura de pantalla que acabamos de pegar se pueden ver el estado de nuestra memoria RAM en este preciso instante. Después de ejecutar el script podremos comparar los resultados.

Ahora ejecutamos el script mediante el comando

sudo ./limpiamemoria.sh

Una vez ejecutado el script en la terminal volvemos a usar el comando free. Con el comando free ahora podremos observar lo que ha realizado la ejecución de nuestro script:

Si observamos la captura de pantalla podemos ver que la ejecución del script nos ha liberado aproximadamente 200 mb de nuestra RAM cache. Por lo tanto podemos decir que el proceso ha salido correctamente.

Nota: Una vez liberada la memoria cache no hay que preocuparse de nada más. A medida que vayamos abriendo programas el contenido se cacheara como lo hace habitualmente. Cuando cuando volvamos a arrancar nuestro ordenador nuestra configuración seguirá siendo la standard ya que con este script no estamos modificando la configuración de arranque de nuestro ordenador.

Para hacer persistente el cambio, cosa que no aconsejo, podemos hacerlo de la siguiente forma:

Entramos en terminal y tecleamos

sudo gedit /etc/sysctl.conf

Dentro del fichero añadimos, o modificamos en el caso que ya exista, la siguiente linea y guardamos:

vm.drop_caches = 3

Como hemos visto antes la variable vm.drop_caches puede tener los valores 0,1,2 o 3.

Ejectuar el script mediante un simple click de ratón

Si queremos ejecutar el script mediante un click de ratón tan solo tenemos que ir a nuestro escritorio. Le damos click al botón derecho de nuestro  mouse y elegimos la opción crear lanzador.

Les aparecerá una ventana similar a la siguiente. Rellenen los campos de esta ventana tal y como se puede ver en la siguiente captura de pantalla:

Una vez rellenados los campos solamente tenemos que apretar en el botón crear. Ahora tendremos un nuevo lanzador en nuestro escritorio. Tan solo tenemos que apretar 2 veces sobre el lanzador. Se abrirá una terminal. Nos pedirá nuestra contraseña de usuarios root. La introducimos y a posteriori se ejecutará el script limpiando nuestra cache.

Automatizar el proceso de limpieza de la Cache

En el caso que seáis de las personas que tenéis las 24 horas vuestro ordenador funcionando les puede interesar realizar la operación de limpieza de cache de forma automática. Para ello tenemos que seguir los siguientes pasos:

Copiaremos el script creado en la carpeta /bin. Para ello abrimos una terminal y tecleamos:

mv limpiamemoria.sh /bin

Ahora configuraremos contrab para que el script se ejecute periódicamente a las 12 de la noche. Para ello en la terminal tecleamos:

crontab -e

Se abrirá el editor de textos en modo terminal y copiamos el siguiente contenido:

0 0 * * * /bin/limpiamemoria.sh

Cerramos y guardamos. De esta forma nuestro script se ejecutará periódicamente sin que nosotros tengamos que hacer nada.

Fuentes

http://www.atareao.es/ubuntu/liberando-la-memoria-cache/
Categorías: Linux

Ver los comentarios (39)

  • Muy bueno el artículo, hace pocos días conocí el blog y es un gusto ir leyendo todos y cada uno de los artículos en mis tiempos libres.
    Felicitaciones!
    Saludos!

    • Me alegro que te guste Fede. Cada artículo son horas de trabajo y los comentarios positivos como los tuyos se agradecen. Espero que podré ir escribiendo durante mucho tiempo. También espero que lo que escriba sea útil para la gente que lo lea.

  • Ante todo, doy las gracias por el artículo tan interesante, sin embargo,empieza de la forma siguiente:

    ¿Cómo liberar memoria cache de nuestra RAM?

    Para realizar la limpieza podemos generar un script muy básico y simple. El script lo podemos hacer de la siguiente forma: Creamos un archivo en nuestra home que se llame limpiamemoria.sh. Para crearlo abrimos una terminal y tecleamos:

    Y debido a mi ignorancia. No puedo seguir las instrucciones porque no se cual es "nuestra home" y tampoco sé que es una "terminal", para poder abrirla.

    Te agradeceré me digas que son estas dos cosas ("nuestra home" y la "terminal"). Para poder continuar con tus instrucciones.

    Gracias anticipadas.

    • Hola Muy buenas.

      Diría que si no sabes que es la home ni la terminal es que estás usando Windows. El post y la solución que se propone es para Linux. Imagino que en Windows se podrá hacer lo mismo pero no se como.

      En el caso que estés usando Linux dilo e intentare explicarte que es esto de la terminal y la home.

      Saludos

    • Hola Felipe

      La parte teórica es igual tanto en Linux como en Windows. En lo referente a la parte práctica si dedicas un poco de tiempo a buscar encontrarás abundante información. Por ejemplo puedes visitar está página:

      http://www.analogx.com

      En esta página encontrarás software para windows para gestionar tu RAM. El que estás buscando creo que se llama Maxmem. Tendrás que ir con cuidado las soluciones que apliques. Yo no las he probado y por lo tanto no te puedo garantizar que no te vaya a causar problemas.

      Te animo que pruebes otros sistemas operativos aparte de Windows. Tanto si usas GNU Linux como MAC OS creo que te van a sorprender gratamente y no querrás usar Windows nunca mas.

  • Muchas gracias por el artículo. Me ha sido muy útil.

    Me gusta mucho que además de explicar cómo hacerlo des algo de teoría. Hace unos meses que me he pasado a Linux y cada día me gusta más. Uso la distro Lubuntu. ¿Podrías indicarme algún manual o alguna página para poder ir aprendiendo más sobre éste?

    Un saludo

    • hola muy buenas. En el pasado use lubuntu. Gran distribución. La verdad es que no conozco foros de lubuntu que sean grandes y en español. Pero en el fondo lubuntu es ubuntu con algunas diferencias. Así qué cualquier foro de ubuntu te servirá.

      en el buscador de google pon ubuntu México y el primero es un buen foro. Abre otra vez google y pon ubuntuforums y te saldrá probablemente el mejor foro para ubuntu existente ahora. Busca por ubuntu España y tienes que encontrar mínimo 2 blogs que están bien. Muévete en la comunidades de google plus, mira en Youtube....

  • Muy Bien Explicado. Es el post que mas detalles trae sobre este comando. Igualmente quisiera aportar mi versión.

    Como soy programador en PHP creo que este script seria muy útil para servidores.

    Podemos crear un archivo php llamado limpiame.php con el siguiente contenido:

    #!/usr/bin/php -q
    /proc/sys/vm/drop_caches");
    sleep(60);
    }
    ?>

    Así ejecutaría el comando de limpieza cada 60 minutos.

    Para llamar al archivo limpiame.php y que quede funcionando en segundo plano se llamaría así:
    nohup ./limpiame.php > /dev/null

    y si quieres comprobar que este funcionando:
    ps -A | grep limpiame

    y ahí deberá aparecer el proceso.

    Cabe añadir que este archivo php deberá tener permisos de ejecución y ser ejecutado por el usuario root.

    Igualmente deberás tener instalado el Lenguaje php
    ("sudo yum install php")

    • Muchas gracias por reportar esta serie de script. Seguro que a alguien le puede ser muy útil tu aportación.

    • Hola muy buenas,

      Jhim, me pareció interesante tu apunte del script, quería que pudierais explicarme unas cosillas. ¿El script lo creo en modo consola o en un texto?

      No soy muy ducho en éste tema, quería que pudieseis explicarme más a fondo sobre el.

      Venga, espero tu respuesta.

  • Soy una persona de 59 años y recientemente he adquirido una computadora con Canaima 3.0 instalado y ando muy perdido por que había usado solo windows.

    Pero estoy muy entusiasmado y hasta he pensado montar Linux a una laptop que tengo. estoy leyendo todo el material que puedo y este me parece muy interesante, pero estoy en la misma posición de ERI el cual dice textualmente:

    "...Y debido a mi ignorancia. No puedo seguir las instrucciones porque no se cual es “nuestra home” y tampoco sé que es una “terminal”, para poder abrirla"

    Te agradeceré me digas que son estas dos cosas (“nuestra home” y la “terminal”). Para poder continuar con tus instrucciones.

    Me siento muy agradecido que hayan toda esta información en la web.

    • Hola Buenas,

      Veo que eres nuevo en Linux. Por lo tanto no te aconsejo seguir los consejos de este post. Si no sabes que es la terminal ni la home mi consejo es que uses Linux como viene de serie y te vayas familiarizando con él.

      Otro buen consejo que te hago es que te hagas miembro de algún foro que sea grande y que este focalizado Debian o Canaima. Allí aprenderás mucho tan solo leyendo los problemas de otras personas.

      Para finalizar la terminal es lo equivalente al símbolo de sistema de windows. La home es una partición donde se guardan los archivos de configuración de los programas que instalas. También es para almacenar tus archivos personales como pueden ser vídeos, canciones, documentos ofiomáticos, etc. Si quieres buscar un símil que no es 100% exacto la home es equivalente a mis documentos de Windows.

      Siempre y cuando la laptop que tienes no te haga falta intenta instalar una distro Linux. Tarde o temprano conseguirás que funcione. En youtube encontraras vídeos detallados de como realizar todo el proceso paso por paso. En el proceso de instalación aprenderás más sobre el funcionamiento de Linux.

      Saludos y disfruta de Linux.

  • Increíble página, muy buenos los contenidos y artículos. Es un gusto tener esta página en mis favoritos.

    Te comento que al tratar de ejecutar el script en Ubuntu 12.04 me aparece un mensaje y parece que hay algo que no estoy haciendo bien. EL mensaje en cuestión es el siguiente:
    $ ./limpiarmemoria.sh
    limpiarmemoria.sh: línea 2: /proc/sys/vm/drop_caches: Permiso denegado
    $

    Y me es imposible ejecutar el script, ¿a que se puede deber esta falla? (He copiado solo la línea 2 del archivo que sugerías)

    • Hola Segundo

      Creo que el mensaje y lo que escribes es suficientemente claro.

      Ejecutas el script sin los permisos suficientes. Diría que tienes que añadir sudo o quizás no estés dando los permisos pertinentes en el script. Espero que solo sea esto. Si lees detalladamente esta claramente indicado todo lo que tienes que hacer y paso por paso.

      Si el script no te funciona siempre lo puedes hacer manualmente.

      Saludos

  • Hola Joan Carles

    Ante todo, te felicito por la página.

    La información y la forma de explicar es muy didactica. He podido realizar todos los pasos sin ningún inconveniente. Además de que cuento con la misma máquina a la que haces referencia. La única duda que me quedó es por que no recomiendas automatizar el proceso de vaciado de cache. Me gustaría saber cuales son las razones para no a hacerlo.

    Desde ya te agradezco la gran ayuda que me has proporcionado, para mejorar aún más mi distro.

    Saludos Gustavo.

    P.D.: La distro en que lo probé es Linux Mint Maya en una EEE pc.

    • Hola Gustavo

      Si no tienes el ordenador 24 horas encencido durante los 7 días de la semana pienso que no es necesario automatizar nada.

      La cache es una memória volátil rápida y lo que está en ella es útil y ayuda a a que tu ordeandor vaya rápido. Todo lo qu esté precargado en la cache mejor porqué cuando arranques un programa no será necesario volverlo a cargar.

      Por lo tanto mi punto de vista es que solo es necesario limpiarla de forma períodica en ordenadores que funcionan las 24 horas. Si cierras el ordenador y lo vuelves arrancar a diario ya se borra la cache y no se satura.

  • Excelente pagina, me la paso en grande y además aprendiendo. Esta web es muy buena sigan adelante :)

  • Hay alguna manera para limitar el cache en redhat6? para que no levante tanto el uso de memoria?

    Gracias!

    • Puedes probar modificando las siguientes variables:

      vm.swappiness: Si fuerzas la paginación en disco liberarás memoria RAM.

      vm.vfs_cache_pressure: Para indicar la prioridad entre cache de inodes y de bloques de datos.

      vm.min_free_kbytes: Valor de memoria RAM que se reserva para escenarios en que nos quedamos sin memoria. Un escenario en que nos podríamos quedar sin memoria es cuando la memoria RAM se llene muy rápido y no hay tiempo para que la memoria Swap libere la memoria RAM.

      Estás variables las puedes modificar en /etc/sysctl.conf. Jugando con estás tres variables deberias poder conseguir lo que te propones.

      Saludos

  • Da gusto leer estos tips tan bien explicados que no dejan lugar a dudas, me ha gustado mucho esta entrada pues necesitaba comprobar la repentina lentitud de mi laptop y ademas me ha enseñado mucho a conocer mejor como funciona mi equipo.

    Gracias por ayudarnos cada dia a ser menos ignorantes. Por cierto me identifiqué contigo Joan en el por que me pasé a XFCE. Y la verdad es que estoy encantado con este escritorio.

    Un abrazo y enhorabuena por el blog. Lo descubrí buscando una solución al problema ya comentado y pasa a mis marcadores desde ya. :)

    Salut i Força

    Xavi

    • Me alegro que mi blog te haya sido de utilidad. Y que gran escritorio es XFCE. Lo adopte como una solución provisional al antiguo gnome y ahora te puedo asegurar que aunque volviera el antiguo gnome me quedaría con XFCE.

      Que vagi bé Xavi

  • Hola, seguí los pasos y me funciono, muchas gracias. Lo tengo funcionando cada 1 minuto

    Me gustaría saber si se puede modificar para que se ejecute cada 10 segundos ya tengo una computadora vieja, con poca RAM y me seria de mucha utilidad.

    • Hola Pedro,

      Limpiar la cache cada minuto o cada 10 minutos no te aportará nada. Creo que te perjudicará más que beneficiará. La limpieza de la cache se debería llevar a término cuando haga falta y sin duda no es cada minuto. Quizás de 6 horas, cada 12 horas o cada 24 horas podría ser adecuado.

      Si dices que lanzas el script cada minuto será que has programado la ejecución del script con cron cada minuto. Tan solo tienes que hacer lo mismo que has hecho ya aplicando el tiempo que tu quieras.

  • Hola, Joan Carles. Realmente quiero darte las gracias y felicitarte por el blog, y también a la gente que lo enriquece con sus aportes. Llegué aquí por problemas al hacer streaming. De tanto en tanto mi webradio salía entrecortada aunque no hiciera con la PC nada más que reproducir y emitir el audio. Notaba que con más de 6 o 7 horas de uso tenía que reiniciar los clientes fuente y el reproductor automatizador.

    Por el momento programé la limpieza de forma un poco redundante, con crontab:

    * */5 * * * /bin/limpiamemoria.sh
    30 21 * * 6 /bin/limpiamemoria.sh
    * */5 * * * swapoff -a && swapon -a

    La de los sábados a las 21:30 es para evitar problemas al emitir un programa que sale a las 22.

    Te iré comentado si desaparece la ocasional tartamudez que asolaba a mi querida radio por las madrugadas.

    He visto que Crontab es sencillo de aprender.

    Saludos, y nuevamente gracias.

    • Perfecto Dany,

      Ya nos comentarás si con esta solución puedes solucionar o mitigar el problema que tienes en tu radio.

      Saludos

  • Gracias por este tutorial.

    Me funciona todo perfectamente hasta que llego a crontab.

    No se ejecuta la orden. En lugar de ponerlo todos los días a las 00 horas, lo he puesto cada 30 minutos.
    */30 * * * * /bin/limpiamemoria.sh

    He revisado con "free" la memoria RAM y no se ha limpiado ni una sola vez.

    ¿Alguna que cambiar o arreglar para que se ejecute?
    Saludos.

    • Hola Buenas

      ¿Y porqué estas tan seguro que no se ejecuta? Lo que deberias hacer para asegurarte es mirar el log de crontab que se encuentra en:

      /var/log/syslog

      Para obtener los valores lo puedes hacer con el comando grep CRON /var/log/syslog

      Si no se ejecuta mira que el demonio de cron esté activado. Si usas un distro con systemd deberías usar el comando sudo service cron status

      Si el resultado es que está desactivado lo activas con el comando sudo service cron start.

      También comentarte que no tiene mucho sentido ejecutar este script cada media hora.

      Saludos

  • Hola, gracias!

    Hacia rato que mi ubuntu 14.04 x64 (y versiones anteriores también) tenia problemas de lentitud, últimamente ya me complicaba trabajar, ya que uso eclipse con varios proyectos a la vez (ya se que no es lo óptimo, pero estoy saltando de uno a otro todo el dia), y ajustando el swapiness solamente no mejoraba, ademas que tenia que reiniciar para que tome efecto.

    Con 8 gb RAM tenia 1 ocupado y el swap de 1 gb lleno al 100%, y aun así linux intentaba swapear, seguí las instrucciones de https://geekland.eu/optimizar-el-uso-de-la-memoria-swap/ y esta página, y magia! volvio el contenido de swap a la RAM para "apagarlo" y luego lo encenderlo de nuevo, vacio, y ya no lo usa casi, se comporta como se supone que debe,

    dejo mi variante del script (minimals diferencias)

    ..................................................
    #!/bin/bash

    # Apaga la memoria swap, achicando su tamaño hasta cero, y moviendo en el proceso el contenido a la memoria principal
    # Para ello, debe haber espacio suficiente en la memoria principal.
    # luego de reducirla a cero (swapoff) la activa de nuevo a su valor total (de la partición swap) iniciando vacía.
    # con esto se optimiza el uso de memoria disminuyendo el intercambio swap-ram cuando el contenido de swap queda estancado
    # teniendo gran cantidad de RAM vacía.
    # fuente https://geekland.eu/optimizar-el-uso-de-la-memoria-swap/
    # @copyrigth (basado en la fuente mencionada)

    swapiness=`cat /proc/sys/vm/swappiness`
    echo "Info valor del swapiness:$swapiness"

    echo "Estado inicial de la memoria..."
    free

    # Limpiar la cache admite opciones 0 a 3
    # 0 no limpia cache
    # 1 estamos forzando a nuestro kernel a liberar la pagecache.
    # 2 estamos forzando a nuestro kernel a liberar los inodos y dentries.
    # 3 estamos forzando a nuestro kernel a liberar la pagecache, los inodos y las dentries.
    # sync: Con el comando sync aseguramos que solo se liberen de la cache los objetos que no estamos usando actualmente.
    # Por lo tanto a priori no hay peligro de cuelgues ni estabilidad en realizar esta operación.
    echo “Limpiando la caché~ “;
    sync ; echo 3 > /proc/sys/vm/drop_caches

    echo "Liberado de la memoria Swap (moviendo info a la memoria RAM)"
    sudo swapoff -a && echo "Activando la memoria Swap liberada" ; sudo swapon -a
    echo "Estado actual post liberación..."
    free
    -------------------------------------------------------------------

    • Hola Claudio

      Gracias por tu comentario. He publicado tu script sin tu email por razones obvias. No se publican emails ni informaciones de contacto en este blog.

      También veo que te atribuyes una licencia copyright. Esto no debe ser así ya que suponiendo el caso que el script inicial en el que te has basado sea Creative Commons, o cualquier otra licencia similar, tu script debe tener exactamente la misma licencia que la fuente en que te has inspirado.

      saludos

  • Hola Joan.

    Respecto a la limpieza periódica de la RAM:

    0 0 * * * /bin/limpiamemoria.sh

    ¿Cuál sería la sintaxis para que en vez de a las 12 de la noche, lo hiciera cada hora, o cada 30 minutos?

    Gracias y un saludo

    • Hola Diego

      Hay varias formas, pero una de ellas seria la siguiente:

      0 */1 * * * /bin/limpiamemoria.sh

      Este ejecutará el scrpit cada hora.

      Saludos

  • Hola Joan.

    Gracias por tu ayuda.

    Pero no entiendo la sintaxis. ¿Cuál sería entonces, por ejemplo, la forma de que lo hiciera cada cinco minutos?. Es decir, no entiendo bien como colocar los números en esa sintaxis.

  • Felicitaciones, excelente artículo y esta super completo.

    También te consulto y si quiero saber que es lo que me esta acumulando más cache.

    Gracias

  • Hola a mi me sale

    sudo: gedit: command not found

    Como siempre mi compu se la complica XD . Si me podes ayudar te agradecería.

    • Hola

      Entiendo que te sale esto al intentar arrancar gedit en modo root.

      Usar sudo no es la forma correcta para esto. Deberías usar gksu gedit o pkexec gedit.

      También asegura que tengas instalado gedit.

      Saludos

  • Que buena explicación. Desconocía esta característica de Linux.

    Hace tiempo intenté engancharme a Linux, pero me costaba dedicarle tanto tiempo, pero ahora me he vuelto a enganchar con Antix, de hecho tengo Windows 7 abandonado por Linux y estas pequeñas utilidades ayudan mucho a los que estamos a nivel un poco medio.

    Muchas gracias por el tiempo que nos dedicas.

  • Muy interesante ese artículo, una gran ayuda para los usuarios de Linux

    Gracias, saludos cordiales

  • Excelente artículo. Llevo más de 10 años usando linux como mi equipo de trabajo y este tema no lo comprendía hasta que leí tu artículo. Gracias por el tiempo que le has dedicado.

Artículos Relacionados