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

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

Comme tout autre système d'exploitation, GNU / Linux a implémenté la gestion de la mémoire efficacement et encore plus que cela. Mais si un processus ronge votre mémoire et que vous voulez l'effacer, Linux fournit un moyen de rincer ou d'effacer le cache RAM.

  • Trouver les 15 meilleurs processus par utilisation de la mémoire dans Linux
  • Trouver les processus de fonctionnement supérieur par la mémoire la plus élevée et l'utilisation du processeur dans Linux
  • Comment limiter le temps et l'utilisation de la mémoire des processus dans Linux

Comment effacer le cache dans Linux?

Chaque système Linux a trois options pour effacer le cache sans interrompre aucun processus ou services.

1. Effacer PageCache uniquement.

# sync; Echo 1> / Proc / Sys / Vm / Drop_caches 

2. Clear Dentries and Inodes.

# sync; Echo 2> / Proc / Sys / Vm / Drop_Caches 

3. Effacer PageCache, Dentries et Inodes.

# sync; Echo 3> / Proc / Sys / Vm / Drop_Caches 

Explication de la commande ci-dessus.

synchronisation Verminera le tampon du système de fichiers. Commande séparée par «;» Exécutez 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, écrivant à drop_cache Va nettoyer le cache sans tuer aucune application / service, Command Echo fait le travail d'écriture pour déposer.

Si vous devez effacer le cache de disque, la première commande est la plus sûre en entreprise et en production comme «… Echo 1>… ." effacera le Cache-cache seul. 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 cache-cache, délais, et inodes.

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

Tampon et cache gratuit dans Linux

Lorsque vous appliquez divers paramètres et que vous souhaitez vérifier, s'il est réellement implémenté spécialement sur la référence E / O-Extensive, vous devrez peut-être effacer le cache tampon. Vous pouvez laisser tomber le cache comme expliqué ci-dessus sans redémarrer le système I.e., Aucun temps d'arrêt requis.

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

De plus, il ralentira également le système pendant quelques secondes pendant que le cache est nettoyé et chaque ressource requise par le système d'exploitation est à nouveau chargée dans le cache disque.

Nous allons maintenant créer un script shell pour effacer automatiquement le cache RAM quotidiennement à 2 h via une tâche de planificateur cron. Créer un script shell vider le cache.shot et ajouter les lignes suivantes.

#!/ bin / bash # note, nous utilisons "Echo 3", mais il n'est pas recommandé dans la production d'utiliser "Echo 1" Echo "Echo 3> / Proc / Sys / Vm / Drop_Caches" 

Définissez l'autorisation d'exécution sur le vider le cache.shot déposer.

# Chmod 755 Clearcache.shot 

Vous pouvez maintenant appeler le script chaque fois que vous devez effacer le cache RAM.

Maintenant, définissez un cron pour effacer le cache RAM tous les jours à 2h du matin. Ouvrir crontab pour le montage.

# crontab -e 

Ajouter la ligne ci-dessous, enregistrer et sortir pour l'exécuter 2 h quotidien.

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

Pour plus de détails sur la façon de faire un emploi, vous aimerez peut-être consulter notre article sur 11 travaux de planification Cron.

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

Effacer le cache RAM sur le serveur de production Linux?

Non! ce n'est pas. Pensez à une situation où vous avez programmé le script pour effacer le cache RAM tous les jours 2 h. Chaque jour à 2 heures du matin, le script est exécuté et il rince votre cache RAM. Un jour pour toute raison, peut être plus que prévu que les utilisateurs sont en ligne sur votre site Web et recherchent des ressources de votre serveur.

En même temps, le script planifié s'exécute et efface tout dans le cache. Maintenant, tous les utilisateurs vont chercher des données du disque. Cela entraînera un accident de serveur et corrompra la base de données. Tellement clair que Ram-Cache uniquement lorsque cela est nécessaire, et connu vos traces, sinon vous êtes un administrateur de système de culte de cargaison.

Comment effacer l'espace d'échange dans Linux?

Si vous souhaitez effacer l'espace d'échange, vous aimerez peut-être exécuter la commande ci-dessous.

# swapoff -a && swapon -a 

En outre, vous pouvez ajouter la commande ci-dessus à un script cron ci-dessus, après avoir compris tous les risques associés.

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

# echo 3> / proc / sys / vm / drop_caches && swapoff -a && swapon -a && printf '\ n% s \ n "ram-cache and swap effacée' ou $ su -c" echo 3> '/ proc / sys / vm / drop_caches '&& swapoff -a && swapon -a && printf' \ n% s \ n "Ram-cache and swap effacé '" 

Après avoir testé les deux commandes ci-dessus, nous exécuterons la commande "gratuit -h«Avant et après l'exécution du script et vérifiera le cache.

C'est tout pour l'instant, si vous avez aimé l'article, n'oubliez pas de nous fournir vos précieux commentaires dans les commentaires pour nous faire savoir, ce que vous pensez être une bonne idée pour effacer le cache et le tampon RAM en production et en entreprise?