Purger la cache mémoire RAM d’un Serveur linux.

Dans certains cas il peut être utile de vider la cache en mémoire RAM de votre serveur Linux, ça peut libérer jusqu’à 70% de mémoire Vive.

Pour forcer le noyau à abandonner la page de cache, inode dentry caches sans redémarrage.

Il s’agit d’une opération non-destructive. Dirty objets ne sont pas freeable, par conséquent, vous devez exécuter la synchronisation vers le disque dur au préalable. Pour cela il faut d’abord être sur que toutes les écritures disques en caches soit écritent, avec la commande SYNC

si vous utilisez Ubuntu dans un terminal tapez :

sudo su

Ecriture de la cache disque,  dans un terminal tapez :

sync

Puis on vas purger la pagecache de la  mémoire RAM dans un terminal tapez :

echo "1" > /proc/sys/vm/drop_caches

Puis on vas purger dentries libre et les inodes de la  mémoire RAM dans un terminal tapez :

echo "2" > /proc/sys/vm/drop_caches

Ou on peut aussi puger les deux en même temps :  dans un terminal tapez :

echo "3" > /proc/sys/vm/drop_caches

Enfin remettre drop_caches par default

echo "0" > /proc/sys/vm/drop_caches 

Dernier Etape : Redemarrer les services Mysql et apache2 afin qu’il recréer leurs caches.

service apache2 restart
service mysql restart

Mise en garde: Toutes ces commandes fonctionnent uniquement en mode root

___________________________________________________________

Voici un script pour Purger la Cache Ram du Serveur

J’ai fait un tutoriel sur  le Script :

Avec un éditeur tapez :

#!/bin/bash
#!/bin/sh # La première ligne sert à spécifier quel shell tu veux excéuter. ici sh 

# Notice : pour executer un script il faut
# 1) changer ses droits pour devenir executable:  chmod 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

##################################################
### Script de purge du cache de la mémoire RAM ###
##################################################

echo "sync : Ecrit la cache disque en cours"
sync
echo "ok"
echo "Vidage du cache de la memoire RAM niveau 3"
echo "3" > /proc/sys/vm/drop_caches
echo "Pause de 1 seconde"
sleep 1
echo "sync : re-ecrit la cache disque en cours (+ par sécurité, pas indispensable)"
sync
echo "action cache remis par defaut"
echo "0" > /proc/sys/vm/drop_caches
echo "Vidage du cache terminée."
echo "redemarre les services mysql pour recréer la cache c'est conseillé"
service mysql restart
echo "redemarre les services apache2 pour recréer la cache c'est conseillé"
service apache2 --full-restart
echo "******* Terminée ********"

Enregistrez-le sous le nom : PurgeRam.sh

Donnez les droits a l’execution du script dans un terminal

chmod 777 PurgeRam.sh

vous pouvez l’exécuter ou l’ajouter aux tâches planifiées.

__________________________________________________

Créer une tâche Planifiée vers 4H50 du matin

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./Chemin/du/scrip/PurgeRam.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 4H50 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    50 4 * * * ./chemin/PurgeRam.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 50 4 * * * ./chemin/PurgeRam.sh

Explication des instructions crontab sur wikipedia

 j’ai fait un tutoriel sur les taches Planifiées ici

Publicités