Liberar Memoria en Linux

Muchas veces tenemos muy pococa ram y necesitamos optimizar. Podemos utilizar este script. Se recomienda utilizarlo en la noche para que no afecte la continuidad de los servicios en producción.

#!/bin/bash
FECHA=$(date)
echo "Generado" > /usr/local/dropcache.txt
echo $FECHA >> /usr/local/dropcache.txt
sync
sysctl -w vm.drop_caches=3
sleep 3
sysctl -w vm.drop_caches=1

También podemos crear un script para que funcione bajo demanda, es decir, que si llega a cierta cantidad de ram se ejecute.

#!/bin/bash
limiteRAM=100
com=`ps -auxw --sort -rss | head`
#while true; do
        memoria=$(free -m | head -2 | tail -1 | awk {'print $4'})
        if [ "$memoria" -lt "$limiteRAM" ]; then
                touch proceso.txt
                echo $com > proceso.txt
                sh /home/usuario/script/lib_mem.sh;
                echo  "Procesos con excesiva RAM" | mail -s "Liberando Cache Ram" correo@dominio.cl < proceso.txt;
                rm proceso.txt
        fi

Aca lo que haces es decir que si el $limiteRAM es menor a 100 ejecute el scritpt que mostramos mas arriba y envíe un correo indicando los procesos que estaban consumiendo los recursos.