GNU/Linux >> Tutoriels Linux >  >> Linux

Comment effacer le cache mémoire sous Linux

Parfois, le système manque de mémoire en raison de l'énorme quantité de RAM utilisée par les objets mis en cache. Dans ce cas, vous devez soit augmenter la mémoire physique du système, soit ajouter plus d'espace de swap. Vous pouvez également demander au noyau d'effacer le cache de la mémoire RAM sur le système en ajoutant un nombre dans /proc/sys/vm/drop_caches fichier.

Il est sûr mais déconseillé d'effacer le cache mémoire sur un système Linux. L'effacement du cache mémoire dans les systèmes Linux ralentit les performances du système car la lecture des fichiers à partir de la mémoire est beaucoup plus rapide que le disque persistant. Puisqu'il supprime les objets mis en cache de la mémoire, la recréation des objets supprimés peut coûter une quantité importante d'E/S et de CPU. Ce tutoriel vous aidera à vider le cache mémoire sur le système Linux/Unix via la ligne de commande.

Comment vider le cache mémoire sous Linux

Il existe trois options disponibles pour effacer le cache mémoire sous Linux. Choisissez l'une des options ci-dessous pour vider la mémoire cache du système Linux selon vos besoins.

  • Effacer PageCache, les dentries et les inodes dans la mémoire cache. En bref, cela effacera tout le cache mémoire :
    sync; echo 3 | sudo tee /proc/sys/vm/drop_caches 
    
  • Effacer les dentries et les inodes uniquement dans la mémoire cache
    sync; echo 2 | sudo tee /proc/sys/vm/drop_caches 
    
  • Effacer le cache des pages uniquement dans la mémoire cache
    sync; echo 1 | sudo tee /proc/sys/vm/drop_caches 
    

Ici la première commande sync est utilisé pour synchroniser tous les fichiers de cache en mémoire avec le stockage persistant. La commande suivante est séparée par un ";". Une fois la première commande terminée, la commande suivante sera déclenchée pour vider la mémoire cache.

Planifier l'effacement du cache mémoire avec Crontab

Vous pouvez également programmer une tâche de maïs pour vider le cache régulièrement. Planifiez les éléments suivants dans la crontab système pour vider automatiquement la mémoire cache à intervalles réguliers.

Ouvrez un terminal et exécutez la commande "crontab -e" pour modifier crontab :

crontab -e 

Ajoutez l'entrée ci-dessous au fichier :

0 10 * *  * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

Le cron ci-dessus s'exécutera toutes les heures et videra le cache mémoire de votre système.

Sur les serveurs de production, il n'est pas recommandé de programmer une commande clear cache. Cela peut entraîner une corruption ou une perte de données. Soyez donc prudent avant d'exécuter la commande ci-dessus dans un environnement de production.

Comment trouver de la mémoire cache sous Linux

Utiliser gratuitement commande pour découvrir les utilisations de la mémoire cache par le système Linux. La sortie de la commande gratuite est comme ci-dessous

free -m 
Output 
             total       used       free     shared    buffers     cached
Mem:         16050      15908        142          0        120      12953
-/+ buffers/cache:        834      15216
Swap:            0          0          0

Ici, la dernière colonne montre la mémoire cache (12953 Mo) sur le système Linux. Le -m L'option est utilisée pour afficher les Mo de sortie.


Linux
  1. Comment effacer l'historique de Bash sous Linux

  2. Comment effacer le cache du navigateur Web à partir de la ligne de commande sous Linux

  3. Comment vider le cache de Firefox ?

  4. Comment effacer le buffer/pagecache (cache disque) sous Linux

  5. Comment trouver l'utilisation de la mémoire utilisateur sous Linux

Comment effacer le cache et la mémoire tampon de la mémoire RAM et l'espace d'échange sous Linux

Comment désactiver définitivement Swap sous Linux

Comment vider le cache DNS sous Linux

Comment fonctionne la mémoire d'échange sous Linux ?

Comment effacer le cache DNS sur Ubuntu

Comment vider le cache DNS sous Linux ?