Header Ads

Free cache ram

Mucho se ha debatido sobre si realmente es conveniente "liberar memoria RAM" (optimización de la caché alojada en la RAM). Para Windows hay infinidad de aplicaciones de donde escoger para realizar esta labor, sin embargo para Linux, muchos sostienen que no es necesario, en cambio otros dan fórmulas casi mágicas para forzar los equipos a usar más la RAM y depender menos de la memoria virtual o swap (un espacio de intercambio o  memoria virtual, comparable con el archivo de paginación de Windows)
Sin el ánimo de participar en estos debates, ya que, con los bajos costos, consideramos que "si necesitas más RAM, compra más RAM" ( Windows NT6 y Linux admiten suficiente RAM), a nuestro juicio, cualquier método basado en software, para cualquier sistema operativo, tendiente a optimizar la caché alojada en la RAM, puede ser contraproducente, ya que hablamos de archivos, programas y procesos en caliente de forma temporal se alojan en estas "memorias virtuales" dentro en la RAM (o en porciones del disco duro que interactúan con la RAM) y cualquier alteración puede comprometer su estado, desempeño o corromper los datos.
Sin embargo reconocemos que hay situaciones "de emergencia" que es necesario vaciar esta caché, sobre todo en servidores en producción basados en Linux. Por ejemplo, cuando termina de realizarse un backup en red (donde las copias de seguridad viajan a través del servidor) o descargas de ficheros de gran tamaño, exceso de tráfico, (demasiadas conexiones simultaneas, ataque DDoS, etc), un virus; en fin; hay muchos escenarios en que puede colapsar un servidor producto de una saturación en la RAM y se necesita vaciarla a toda velocidad para que el servidor vuelva a la normalidad.
Solo para estos casos, podemos recomendar un script muy útil, diseñado por el portal atareo, el cual lo hemos probado, demostrando un buen desempeño y efectividad.
Para ejecutarlo, pueden hacerlo según lo explica el portal o:
Descargamos el script AQUI
Luego lo descomprimimos y 
mv freecache /etc/init.d/
chmod +x /etc/init.d/freecache
update-rc.d freecache defaults
El paso siguiente es abrir el Webmin en el navegador (https://localhost:10000) y en la sección "Sistemas/Arranque y Parada" encontrará el script freecache y puede ejecutarlo manualmente cada vez que lo necesite.
No se recomienda dejarlo automático para que inicie junto con los demás procesos del servidor, porque comenzará a vaciar la caché de la RAM constantemente y generar pérdidas de datos. Ejecútelo únicamente cuando lo requiera. Si usa un servidor que no tiene carga total 24/7, puede programarlo en el cron o en el webmin para que se ejecute en horas no laborables y eliminar la carga residual.
No olvide sincronizar antes de ejecutar el script, sobre todo si va a vaciar la caché en horas pico
sudo sync
En caso de fallar el script freecache puede ejecutar manualmente el comando
sudo sysctl -w vm.drop_caches=3
O si quiere algo más avanzado, puede montar su Proxy Caché con Squid
Una buena manera de saber el consumo de todos los procesos de su sistema es escribir el siguiente comando en el terminal ( blackhold):
ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s ",$x) } print "" }'
Y para conocer la swap usada por los diferentes procesos, corra el siguiente script, cortesía de northernmost.org:
#!/bin/bash 
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
# Modified by Mikko Rantalainen 2012-08-09
# Pipe the output to "sort -nk3" to get sorted output
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`
    for SWAP in `grep Swap $DIR/smaps 2>/dev/null | awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done
    if (( $SUM > 0 )); then
        echo "PID=$PID swapped $SUM KB ($PROGNAME)"
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "Overall swap used: $OVERALL KB"
Con la tecnología de Blogger.