Welche Dateien werden von Linux zwischengespeichert?

9

Ich verstehe, dass Linux nicht verwendeten RAM verwendet, um einige Dateien zwischengespeichert zu halten. Aber ich frage mich, welche Dateien es tatsächlich zwischenspeichert! Wenn Sie sich Folgendes ansehen 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

Es heißt, dass 1,7 GB meines Arbeitsspeichers als Cache verwendet werden. Ich weiß, dass dies kein schädliches Verhalten ist, aber ich bin gespannt, welche Dateien Linux als Cache-würdig erachtet. Gibt es einen Befehl / eine Datei, die mir die zwischengespeicherten Dateien anzeigt?

Max Beikirch
quelle

Antworten:

9

Wenn ich mich nicht irre, speichert der Linux-Kernel bestimmte Seiten einer Datei zwischen, dh nicht die gesamte Datei wird in den Seiten-Cache geladen. Ein Tool, mit dem Sie herausfinden können, ob sich ein Inhalt einer Datei im Seitencache befindet, stammt fincoreaus dem linux-ftoolsProjekt. Es werden zwar nicht alle zwischengespeicherten Dateien auf der Festplatte angezeigt, Sie erhalten jedoch eine ungefähre Vorstellung davon, was in den Seitencache geladen wird.

Ein Beispiel (zitiert von der Website des Projekts):

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

Der obige Befehl listet einige der * .MYD-, * .MYI- und * .frm-Dateien auf, in denen einige Seiten im Seitencache gespeichert sind.

Wenn Sie wirklich alle Dateien mit mindestens 1 Seite im Seitencache herausfinden möchten, funktioniert dies möglicherweise (ungetestet, erzeugt eine große Ausgabe und dauert wahrscheinlich sehr lange):

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