Cualquier sysadmin que alguna vez hubiese manejado un sistema linux y se ha preocupado de observar el consumo de memoria RAM mientras este se encuentra funcionando, habrá notado que a medida que pasa el tiempo las aplicaciones van consumiendo la memoria física poco a poco, sin embargo cuando en el servidor se ejecutan procesos de alta demanda, es probable que este consumo se vea incrementado, haciendo aveces que el sistema tenga que hacer uso de la partición SWAP. Esto parece ocurrir porque Linux maneja un caché de memoria física para poder así mejorar el rendimiento en las respuestas de procesos.

Dependiendo de que tanta demanda tenga el servidor, he decidido forzar una limpieza de memoria cada cierto tiempo con la ayuda del Dios CRON

#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches

Ejecutar este script cada vez que se estime conveniente limpia el CACHE, personalmente recomendaría hacerlo en los momentos de menor uso de los servicios de la máquina.

Espero le sea útil a alguien y a quien le parezca interesante al menos deje un comentário 😀

Ingeniero, enfocado en la familia y el cliente, emprendiendo y capitalizando lo aprendido por años.

Dedico algo de tiempo a compartir con ustedes mis experiencias sobre informática y tecnología porque en mas de una ocasión fui yo quien aprendí de otros a través de sitios como este.

6 Comments

  1. Reply

    @rafael campoverde

    Hola Rafael, lo que dices es cierto, este comando lo que hace es limpiar la memoria y es útil para limpiarla diariamente tras la carga de trabajo diario, sin embargo aplicar esto cada 20 minutos bordea lo descabellado, es casi tapar el sol con un dedo porque claramente ORACLE terminará por acabar con ella rápidamente.

    Yo partiría por asegurarme de que no cuentes con otras aplicaciones que estén consumiendo recursos ¿Solo corre oracle sobre esta máquina?

  2. rafael campoverde

    Reply

    Buen dia, tengo un problemita y espero me puedan ayudar….

    estoy administrando recientemente unos redhat que corren oracle, estos se paran quedando sin memoria fisica y el free me dice que tengo 48mb libres o menos… no se que hacer para que esto no ocurra, consulte con los DBA y me dicen que me dije en el valor “-/+ buffers/cache:” del comando free pero no creo ke sea tan cierto eso..

    He visto que el anterior admin de aca ejecuta cada 20 minutos un: “sync; echo 3 > /proc/sys/vm/drop_caches” pero por lo que he leido eso solo limpia la memoria pero como las aplicacinoes siguen necesitandola, nuevamente se llena la memoria, es decir, ese comando no es real, almenos no para lo que necesito….

    bueno la pregunta es: que me quede sin memoria fisica significa que necesito mas memoria ram??? (tengo 8 nucleos y 16G de ram.)

    Gracias!!!!

  3. manel

    Reply

    Poto:

    “Antes de darselas de sysadmin documentese” ( tu si que lo eres, no?)

    Te has lucido.

  4. Reply
  5. Reply

    realmente sabes que estas haciendo?

    ese hack es bastante sucio y peligroso. si estas escribiendo datos al momento de ejecutar ese comando estas haciendo dump fuera del cache del fs antes que alcance el disco..

    hay una forma mucho mas segura de hacerlo -> /proc/sys/vm/vfs_cache_pressure
    ahi le puedes decir al kernel que prioridad deberia tener cuando se limpian caches de inode/dentry.

    Antes de darselas de sysadmin documentese 😉

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.