Vider le cache des tampons
Si jamais vous voulez le vider, vous pouvez utiliser cette chaîne de commandes.
# free && sync && echo 3 > /proc/sys/vm/drop_caches && free
total used free shared buffers cached
Mem: 1018916 980832 38084 0 46924 355764
-/+ buffers/cache: 578144 440772
Swap: 2064376 128 2064248
total used free shared buffers cached
Mem: 1018916 685008 333908 0 224 108252
-/+ buffers/cache: 576532 442384
Swap: 2064376 128 2064248
Vous pouvez indiquer au noyau Linux de supprimer divers aspects des éléments mis en cache en modifiant l'argument numérique de la commande ci-dessus.
Pour libérer pagecache:
# echo 1 > /proc/sys/vm/drop_caches
Pour libérer les dentiers et les inodes:
# echo 2 > /proc/sys/vm/drop_caches
Pour libérer pagecache, dentries et inodes:
# echo 3 > /proc/sys/vm/drop_caches
Ce qui précède est destiné à être exécuté en tant que root. Si vous essayez de les utiliser en utilisant sudo
alors vous devrez changer légèrement la syntaxe en quelque chose comme ceci:
$ sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches'
$ sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches'
$ sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'
NOTE: Il existe une version plus ésotérique de la commande ci-dessus si vous aimez ça:
$ echo "echo 1 > /proc/sys/vm/drop_caches" | sudo sh
Pourquoi ce changement de syntaxe? Le /bin/echo
programme s'exécute en tant que root, sudo
mais le shell qui redirige la sortie de l'écho vers le fichier root ne fonctionne toujours pas. Votre shell actuel effectue la redirection avant de sudo
commencer.
Voir ce qu'il y a dans les tampons et le cache
Examinez linux-ftools
si vous souhaitez analyser le contenu des mémoires tampons et du cache. Spécifiquement si vous voulez voir quels fichiers sont actuellement mis en cache.
fincore
Avec cet outil, vous pouvez voir quels fichiers sont mis en cache dans un répertoire donné.
fincore [options] files...
--pages=false Do not print pages
--summarize When comparing multiple files, print a summary report
--only-cached Only print stats for files that are actually in cache.
Par exemple /var/lib/mysql/blogindex
:
root@xxxxxx:/var/lib/mysql/blogindex# fincore --pages=false --summarize --only-cached *
stats for CLUSTER_LOG_2010_05_21.MYI: file size=93840384 , total pages=22910 , cached pages=1 , cached size=4096, cached perc=0.004365
stats for CLUSTER_LOG_2010_05_22.MYI: file size=417792 , total pages=102 , cached pages=1 , cached size=4096, cached perc=0.980392
stats for CLUSTER_LOG_2010_05_23.MYI: file size=826368 , total pages=201 , cached pages=1 , cached size=4096, cached perc=0.497512
stats for CLUSTER_LOG_2010_05_24.MYI: file size=192512 , total pages=47 , cached pages=1 , cached size=4096, cached perc=2.127660
stats for CLUSTER_LOG_2010_06_03.MYI: file size=345088 , total pages=84 , cached pages=43 , cached size=176128, cached perc=51.190476
stats for CLUSTER_LOG_2010_06_04.MYD: file size=1478552 , total pages=360 , cached pages=97 , cached size=397312, cached perc=26.944444
stats for CLUSTER_LOG_2010_06_04.MYI: file size=205824 , total pages=50 , cached pages=29 , cached size=118784, cached perc=58.000000
stats for COMMENT_CONTENT_2010_06_03.MYI: file size=100051968 , total pages=24426 , cached pages=10253 , cached size=41996288, cached perc=41.975764
stats for COMMENT_CONTENT_2010_06_04.MYD: file size=716369644 , total pages=174894 , cached pages=79821 , cached size=326946816, cached perc=45.639645
stats for COMMENT_CONTENT_2010_06_04.MYI: file size=56832000 , total pages=13875 , cached pages=5365 , cached size=21975040, cached perc=38.666667
stats for FEED_CONTENT_2010_06_03.MYI: file size=1001518080 , total pages=244511 , cached pages=98975 , cached size=405401600, cached perc=40.478751
stats for FEED_CONTENT_2010_06_04.MYD: file size=9206385684 , total pages=2247652 , cached pages=1018661 , cached size=4172435456, cached perc=45.321117
stats for FEED_CONTENT_2010_06_04.MYI: file size=638005248 , total pages=155763 , cached pages=52912 , cached size=216727552, cached perc=33.969556
stats for FEED_CONTENT_2010_06_04.frm: file size=9840 , total pages=2 , cached pages=3 , cached size=12288, cached perc=150.000000
stats for PERMALINK_CONTENT_2010_06_03.MYI: file size=1035290624 , total pages=252756 , cached pages=108563 , cached size=444674048, cached perc=42.951700
stats for PERMALINK_CONTENT_2010_06_04.MYD: file size=55619712720 , total pages=13579031 , cached pages=6590322 , cached size=26993958912, cached perc=48.533080
stats for PERMALINK_CONTENT_2010_06_04.MYI: file size=659397632 , total pages=160985 , cached pages=54304 , cached size=222429184, cached perc=33.732335
stats for PERMALINK_CONTENT_2010_06_04.frm: file size=10156 , total pages=2 , cached pages=3 , cached size=12288, cached perc=150.000000
---
total cached size: 32847278080
Avec la sortie ci-dessus, vous pouvez voir qu'il y a plusieurs fichiers * .MYD, * .MYI et * .frm en cours de mise en cache.
Échanger
Si vous souhaitez effacer votre échange, vous pouvez utiliser les commandes suivantes.
$ free
total used free shared buffers cached
Mem: 7987492 7298164 689328 0 30416 457936
-/+ buffers/cache: 6809812 1177680
Swap: 5963772 609452 5354320
Ensuite, utilisez cette commande pour désactiver le swap:
$ swapoff -a
Vous pouvez confirmer qu'il est maintenant vide:
$ free
total used free shared buffers cached
Mem: 7987492 7777912 209580 0 39332 489864
-/+ buffers/cache: 7248716 738776
Swap: 0 0 0
Et pour le réactiver:
$ swapon -a
Et maintenant reconfirmer avec free
:
$ free
total used free shared buffers cached
Mem: 7987492 7785572 201920 0 41556 491508
-/+ buffers/cache: 7252508 734984
Swap: 5963772 0 5963772