Recherche de site Web

Comment vider le cache, le tampon et l'échange de la mémoire RAM sous Linux


Comme tout autre système d'exploitation, GNU/Linux a implémenté la gestion de la mémoire de manière efficace et même plus que cela. Cependant, si un processus ronge votre mémoire et que vous souhaitez l'effacer, Linux fournit un moyen de vider ou d'effacer le cache RAM.

Dans cet article, nous explorerons comment vider le cache, la mémoire tampon et l'espace d'échange de la mémoire RAM sur un système Linux pour améliorer les performances globales.

Comprendre le cache, la mémoire tampon et l'espace d'échange de la mémoire RAM

Explorons le cache mémoire RAM, la mémoire tampon et l'espace d'échange sur un système Linux.

Cache mémoire RAM

Le cache mémoire RAM est un mécanisme utilisé par le noyau pour conserver les données régulièrement consultées. Bien que cela améliore la réactivité du système, un cache surchargé peut entraîner la rétention de données obsolètes, affectant ainsi les performances.

Tampon

Comme le cache, le tampon conserve les données temporairement mais son objectif diffère. Les tampons stockent les données transférées entre des composants tels que le processeur et le disque dur, facilitant ainsi une communication fluide. Cependant, un excès de données mises en mémoire tampon peut nuire à la vitesse du système.

Échange d'espace

L'Espace d'échange est une zone allouée sur le disque dur qui fait office de mémoire virtuelle lorsque la RAM physique est épuisée. Bien qu'il évite les pannes du système dues à une mémoire insuffisante, il peut ralentir le système en cas de surutilisation.

Vider le cache, le tampon et l'espace d'échange sous Linux

Dans certaines situations, vous devrez peut-être vider le cache, le tampon ou l'espace d'échange comme expliqué ci-dessous.

Comment vider le cache mémoire RAM sous Linux ?

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

Vider le cache de pages

1. Pour effacer le PageCache uniquement, vous pouvez utiliser la commande suivante, qui effacera spécifiquement le PageCache, aidant ainsi à libérer des ressources mémoire.

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

Effacement des dents et des inodes

2. Pour effacer les dentries et les inodes uniquement, vous pouvez utiliser la commande suivante, qui synchronisera le système de fichiers et effacera à la fois les dentries et les inodes : améliorer les performances du système en libérant les informations de répertoire et d'inode mises en cache.

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

Effacement du PageCache, des Dentries et des Inodes

3. Pour effacer le pagecache, les dentries et les inodes, vous pouvez utiliser la commande suivante, qui synchronisera le système de fichiers et effacer le cache de pages, les dentries et les inodes, aidant ainsi à libérer de la mémoire et à améliorer les performances du système.

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

Voici une explication de chaque partie de la commande ci-dessus :

  • Le sudo est utilisé pour exécuter la commande en tant que superutilisateur.
  • Le sync videra le tampon du système de fichiers.
  • Le " ; " le point-virgule est utilisé pour séparer plusieurs commandes sur une seule ligne.
  • La commande echo 3 > /proc/sys/vm/drop_caches est utilisée pour supprimer le cache des pages, une zone de stockage temporaire pour les fichiers récemment consultés.

Remarque : Le fichier drop_caches contrôle le type de données mises en cache qui doivent être effacées et les valeurs sont les suivantes :

  • 1 – Efface uniquement le cache des pages.
  • 2 – Efface les entrées et les inodes.
  • 3 – Efface le cache des pages, les entrées et les inodes.

Comme mentionné dans la documentation du noyau, écrire dans drop_caches nettoiera le cache sans tuer aucune application/service, la commande echo fait le travail d'écriture dans le fichier.

Si vous devez vider le cache disque, la première commande est la plus sûre en entreprise et en production sous la forme «...echo 1 > …. ” effacera uniquement le PageCache.

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 le pagecache, dentries, et inodes.

Comment libérer de l’espace d’échange sous Linux ?

Pour libérer de l'espace de swap, vous pouvez utiliser la commande swapoff avec l'option -a, qui désactivera toutes les partitions de swap.

sudo swapoff -a

Ensuite, retournez-le en exécutant la commande suivante, qui activera toutes les partitions de swap.

sudo swapon -a

Est-il conseillé de libérer le tampon, le cache et l’échange sous Linux ?

En général, ce n'est pas une bonne idée de libérer manuellement le Buffer et le Cache sous Linux qui pourraient être utilisés par le noyau Linux, qui est conçu pour gérer ces ressources efficacement. et les effacer manuellement peut perturber les performances du système.

Cependant, dans de rares situations, vous devrez vider le tampon et le cache, par exemple si vous rencontrez une forte pression sur la mémoire et ne parvenez pas à libérer de la mémoire par d'autres moyens. Dans ces cas, vous devez procéder avec prudence et être conscient de l’impact potentiel sur les performances.

De même, vider l’espace de swap sous Linux n’est généralement pas une pratique courante ou recommandée dans des circonstances normales.

Automatisation de l'optimisation de la mémoire

Pour automatiser le processus et effacer régulièrement la mémoire, vous pouvez configurer une tâche cron pour exécuter les commandes à des intervalles spécifiés.

Ouvrez la configuration de crontab.

crontab -e

Ajoutez les lignes suivantes pour vider le cache, la mémoire tampon et l'espace d'échange quotidiennement à minuit :

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

Pour plus d'informations sur la planification d'une tâche avec cron, vous souhaiterez peut-être vous référer à notre article intitulé « 11 tâches de planification Cron ».

Est-il conseillé de vider le cache RAM sur un serveur de production Linux ?

Non, ce n'est pas le cas. Prenons un scénario dans lequel vous avez programmé un script pour vider le cache RAM tous les jours à 2 heures du matin. Chaque jour à 2 heures du matin, le script est exécuté, vidant votre cache RAM. Cependant, un jour, un nombre étonnamment élevé d’utilisateurs sont en ligne sur votre site Web, ce qui impose une demande importante aux ressources de votre serveur.

Simultanément, le script planifié s'exécute et efface tout le cache. Désormais, tous les utilisateurs récupèrent les données du disque, ce qui pourrait entraîner un crash du serveur et une corruption de la base de données. Par conséquent, il est essentiel de vider le cache RAM uniquement lorsque cela est nécessaire, en étant attentif à vos actions. Sinon, vous risquez de devenir un administrateur système Cargo Cult.

Conclusion

Une gestion efficace de la mémoire est cruciale pour le bon fonctionnement du système Linux. Effacer régulièrement le cache de la mémoire RAM, la mémoire tampon et l'espace d'échange peut améliorer considérablement les performances du système. En comprenant ces mécanismes et en utilisant les commandes fournies, vous pouvez garantir le fonctionnement optimal de votre système Linux.

C'est tout pour le moment. Si vous avez apprécié l'article, n'oubliez pas de partager vos précieux commentaires dans les commentaires. Faites-nous part de votre avis sur ce que vous pensez être une bonne approche pour vider le cache et la mémoire tampon de la RAM dans les environnements de production et d'entreprise.