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 12012953 -/+ 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.