Comment Effacer le Cache de Mémoire RAM, le Tampon et l’espace d’échange sur Linux

Comme tout autre système d’exploitation, GNU / Linux a mis en œuvre une gestion de la mémoire efficace et même plus que cela. Mais si un processus ronge votre mémoire et que vous souhaitez l’effacer, Linux fournit un moyen de vider ou d’effacer le cache de la ram.

Effacer le cache RAM et Permuter sous Linux

Comment effacer le cache sous Linux?

Chaque système Linux dispose de trois options pour vider le cache sans interrompre aucun processus ou service.

1. Effacer le cache de page uniquement.

# sync; echo 1 > /proc/sys/vm/drop_caches

2. Effacer les dents et les inodes.

# sync; echo 2 > /proc/sys/vm/drop_caches

3. Effacer la tache de page, les dents et les inodes.

# sync; echo 3 > /proc/sys/vm/drop_caches 

Explication de la commande ci-dessus.

sync videra le tampon du système de fichiers. La commande séparée par ";” s’exécute séquentiellement. Le shell attend que chaque commande se termine avant d’exécuter la commande suivante dans la séquence. Comme mentionné dans la documentation du noyau, l’écriture dans drop_cache nettoiera le cache sans tuer aucune application / service, la commande echo fait le travail d’écriture dans un fichier.

Si vous devez effacer le cache disque, la première commande est la plus sûre en entreprise et en production car "...echo 1 > ….” effacera uniquement le cache de page. Il n’est pas recommandé d’utiliser la troisième option ci-dessus "...echo 3 >” en production jusqu’à ce que vous sachiez ce que vous faites, car cela effacera les taches de pages, les dents et les inodes.

Est-ce une bonne idée de libérer le tampon et le cache sous Linux qui pourraient être utilisés par le noyau Linux?

Lorsque vous appliquez divers paramètres et que vous souhaitez vérifier, s’il est réellement implémenté spécialement sur un benchmark étendu aux E / S, vous devrez peut-être vider le cache tampon. Vous pouvez supprimer le cache comme expliqué ci-dessus sans redémarrer le système, c’est-à-dire sans temps d’arrêt requis.

Linux est conçu de telle sorte qu’il regarde dans le cache du disque avant de regarder sur le disque. S’il trouve la ressource dans le cache, la demande n’atteint pas le disque. Si nous nettoyons le cache, le cache du disque sera moins utile car le système d’exploitation recherchera la ressource sur le disque.

De plus, cela ralentira également le système pendant quelques secondes pendant que le cache est nettoyé et que toutes les ressources requises par le système d’exploitation sont à nouveau chargées dans le cache-disque.

Maintenant, nous allons créer un script shell pour effacer automatiquement le cache RAM tous les jours à 2h du matin via une tâche de planificateur cron. Créer un script shell clearcache.sh et ajoutez les lignes suivantes.

#!/bin/bash# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"

Définit l’autorisation d’exécution sur le clearcache.sh fichier.

# chmod 755 clearcache.sh

Maintenant, vous pouvez appeler le script chaque fois que vous avez besoin d’effacer le cache de la ram.

Définissez maintenant un cron pour effacer le cache RAM tous les jours à 2h du matin. Ouvrez crontab pour l’édition.

# crontab -e

Ajoutez la ligne ci-dessous, enregistrez et quittez pour l’exécuter à 2 heures du matin par jour.

0 2 * * * /path/to/clearcache.sh

Pour plus de détails sur la façon de cron une tâche, vous pouvez consulter notre article sur 11 tâches de planification de Cron.

Est-ce une bonne idée d’effacer automatiquement le cache RAM sur le serveur de production?

Non! ce n’est pas le cas. Pensez à une situation où vous avez programmé le script pour effacer le cache ram tous les jours à 2h du matin. Tous les jours à 2h du matin, le script est exécuté et il vide votre cache de RAM. Un jour, pour quelque raison que ce soit, peut-être plus que prévu, les utilisateurs sont en ligne sur votre site Web et recherchent des ressources auprès de votre serveur.

En même temps, le script programmé s’exécute et efface tout le cache. Maintenant, tous les utilisateurs récupèrent des données à partir du disque. Cela entraînera un crash du serveur et corrompra la base de données. Donc, effacez le cache ram uniquement lorsque cela est nécessaire et connaissez vos pas, sinon vous êtes un administrateur système Cargo Cult.

Comment effacer l’espace d’échange sous Linux ?

Si vous souhaitez effacer l’espace d’échange, vous pouvez exécuter la commande ci-dessous.

# swapoff -a && swapon -a

Vous pouvez également ajouter la commande ci-dessus à un script cron ci-dessus, après avoir compris tout le risque associé.

Maintenant, nous allons combiner les deux commandes ci-dessus en une seule commande pour créer un script approprié pour vider le cache de la RAM et échanger de l’espace.

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'OR$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root

Après avoir testé les deux commandes ci-dessus, nous exécuterons la commande « free-h” avant et après l’exécution du script et vérifierons le cache.

Effacer le cache RAM et l'espace d'échange

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *