# Blink Script ishuara regis

Svuotare la memoria cache in Linux.



Linux ha un modello di gestione della memoria molto efficiente che dovrebbe svuotare la RAM appena questa risultasse non più utilizzata. Purtroppo, quando si tratta di memoria Cached, Linux non riesce ad effetuare questa operazione in maniera sempre ottimale.Questo comportamento può portare un server ad esaurire tutta la memoria a disposizione. Per contrastare questo fenomeno è possibile forzare Linux a liberare la memoria cached. Ecco come fare:

  1. Create un file nella cartella '/root' chiamato 'clearcache.sh' con il seguente contenuto:
#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches
  1. In una shell/terminale come utente root aggiungete alla crontab “crontab -e <enter>”  questa riga:
0 * * * * /root/clearcache.sh
Da questo momento in poi ogni ora il nostro comando verrà lanciato dalla crontab, svuotando la memoria cache che si è via via accumulata.

PRIMA:

DOPO:


Nota: prima il server usava 1.918GB di RAM con una cache di 1.498GB, dopo aver lanciato lo script il server sta usando solo 172MB di RAM  con una cache di 39MB

3 commenti:

Enharioth ha detto...

Piccolo appunto: Bisogna ricordarsi di settare il file .sh come eseguibile, da me sembrava non funzionasse per quel motivo ;)

Bombolo ha detto...

Mi sembra un'idea geniale! Grazie per l'articolo illuminante.

Suggerisco di cambiare la riga di crontab in:

* * * * * /root/clearcache.sh

In questo modo la memoria occupata verra` liberata ogni minuto!

Ishuara Regis ha detto...

giusto, aggiungo le chmod e le crontab :)

Posta un commento