Quels fichiers sont mis en cache par Linux?

9

Je comprends que Linux utilise de la RAM inutilisée pour garder certains fichiers en cache. Mais je me demande quels fichiers il cache réellement! Si vous regardez free:

Gesamt Belegt Frei Gemeinsam Puffer Cached
Speicher:       5,8G       3,7G       2,1G         0B       259M       1,7G
-/+ Puffer/Cache:       1,8G       4,0G
Auslagerungsdatei:       4,0G         0B       4,0G

il indique que 1,7 Go de ma RAM sont utilisés comme cache. Je sais que ce n'est pas un comportement nuisible, mais je suis curieux de savoir quels fichiers Linux considère comme valables pour le cache. Existe-t-il une commande / un fichier qui me montre les fichiers mis en cache?

Max Beikirch
la source

Réponses:

9

Si je ne me trompe pas, le noyau Linux met en cache des pages spécifiques d'un fichier, c'est-à-dire que le fichier entier n'est pas chargé dans le cache de pages. Un outil que vous pouvez utiliser pour déterminer si certains contenus d'un fichier se trouve dans le cache de pages fincoreprovient du linux-ftoolsprojet. Bien qu'il n'affiche pas tous les fichiers mis en cache sur le disque, il vous donne une idée approximative de ce qui est chargé dans le cache de pages.

Un exemple (cité sur le site Web du projet):

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

La commande ci-dessus répertorie certains des fichiers * .MYD, * .MYI et * .frm qui ont certaines pages stockées dans le cache de pages.

Si vous vouliez vraiment découvrir tous les fichiers avec au moins 1 page dans le cache de pages, cela peut fonctionner (non testé, produira une sortie importante et prendra probablement très longtemps):

cd /
find . -type f | xargs fincore --pages=false --summarize --only-cached
yjwong
la source