GNU/Linux >> Tutoriels Linux >  >> Cent OS

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

Êtes-vous confronté à un problème de performances et pensez-vous qu'il pourrait être lié à l'utilisation du cache ? Une utilisation élevée du cache ne devrait normalement pas entraîner de problèmes de performances, mais cela peut être la cause principale dans de rares cas.

Qu'est-ce que le cache mémoire

Afin d'accélérer les opérations et de réduire les E/S de disque, le noyau fait généralement autant de mise en cache qu'il a de mémoire De par leur conception, les pages contenant des données mises en cache peuvent être réutilisées à la demande pour d'autres utilisations (par exemple, des applications). n'est pas plus lent que de réclamer des pages vierges intactes.

Quel est le but de /proc/sys/vm/drop_caches

L'écriture dans /proc/sys/vm/drop_caches permet de demander au noyau de supprimer immédiatement autant de données mises en cache propres que possible. Cela se traduira généralement par une certaine disponibilité de la mémoire; cependant, dans des circonstances normales, cela ne devrait pas être nécessaire.

Comment vider le cache mémoire à l'aide de /proc/sys/vm/drop_caches

Écrire la valeur appropriée dans le fichier /proc/sys/vm/drop_caches oblige le noyau à supprimer les caches, les dentries et les inodes propres de la mémoire, ce qui libère cette mémoire.

1. Pour effacer PageCache, exécutez uniquement :

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

2. Afin d'effacer les dentries (également appelés Directory Cache) et les inodes, exécutez :

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

3. Afin d'effacer PageCache, les dentries et les inodes s'exécutent :

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

L'exécution de la synchronisation écrit les pages modifiées sur les disques. Normalement, les pages sales sont la mémoire utilisée, elles ne sont donc pas disponibles pour être libérées. Ainsi, l'exécution de la synchronisation peut aider les opérations de suppression qui s'ensuivent à libérer davantage de mémoire.

Cache de pages est la mémoire conservée après la lecture des fichiers. Le noyau Linux préfère conserver le cache des pages inutilisées en supposant que les fichiers lus une fois seront très probablement lus à nouveau dans un proche avenir, évitant ainsi l'impact des performances sur les E/S du disque.

dentry et inode_cache sont la mémoire conservée après la lecture des attributs de répertoire/fichier, tels que open() et stat(). dentry est commun à tous les systèmes de fichiers, mais inode_cache est basé sur le système de fichiers. Le noyau Linux préfère conserver ces informations en supposant qu'elles seront à nouveau nécessaires dans un avenir proche, évitant ainsi les E/S de disque.

Remarque :Démarrer avec la commande de synchronisation comme indiqué dans les 3 commandes ci-dessus est facultatif. La commande sync permet au noyau d'écrire autant de pages de cache sales sur le disque que possible (pour maximiser le nombre de pages de cache de données pouvant être supprimées)

Comment vider le cache mémoire à l'aide de sysctl

Vous pouvez également déclencher la suppression du cache en utilisant sysctl -w vm.drop_caches=[number] commande.

1. Pour libérer le pagecache, les dentries et les inodes, utilisez la commande ci-dessous.

sysctl -w vm.drop_caches=3

2. Pour libérer uniquement les dentries et les inodes, utilisez la commande ci-dessous.

sysctl -w vm.drop_caches=2 

3. Pour libérer uniquement le pagecache, utilisez la commande ci-dessous.

sysctl -w vm.drop_caches=1
Remarque :L'utilisation de vm.drop_caches peut provoquer un blocage si le système est soumis à une surcharge de mémoire et d'E/S !!!

Les données mises en cache "propres" peuvent être supprimées. Les données en cache "sales" doivent être écrites quelque part. L'utilisation de vm.drop_caches ne déclenchera jamais le noyau pour supprimer le cache sale.


Cent OS
  1. Comment savoir si le disque est un SSD ou un disque dur sous Linux

  2. Comment vider le cache de Firefox ?

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

  4. Comment nettoyer les caches utilisés par le noyau Linux

  5. Comment enregistrer la consommation de mémoire sous Linux ?

Comment effacer ou vider le cache DNS sous Linux

Comment gérer les volumes de disque sous Linux

Comment effacer le cache RAM, le tampon et l'espace d'échange sur le système Linux

Comment effacer la mémoire d'échange sous Linux

Comment installer KernelCare et vider le cache Kernelcare sous Linux

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