Które pliki są buforowane przez Linux?

9

Rozumiem, że Linux używa nieużywanej pamięci RAM do przechowywania niektórych plików w pamięci podręcznej. Ale zastanawiam się, które pliki tak naprawdę buforuje! Jeśli spojrzysz na 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

mówi, że 1,7 GB mojej pamięci RAM jest używanych jako pamięć podręczna. Wiem, że to nie jest szkodliwe zachowanie, ale jestem ciekawy, które pliki Linux uważa za warte buforowania. Czy istnieje polecenie / plik, który pokazuje mi pliki z pamięci podręcznej?

Max Beikirch
źródło

Odpowiedzi:

9

Jeśli się nie mylę, jądro Linuksa buforuje określone strony pliku, tzn. Nie cały plik jest ładowany do pamięci podręcznej stron. Jedno narzędzie, którego można użyć do ustalenia, czy część zawartości pliku znajduje się w pamięci podręcznej strony, pochodzi fincorez linux-ftoolsprojektu. Chociaż nie wyświetla wszystkich buforowanych plików na dysku, daje przybliżone wyobrażenie o tym, co jest ładowane do pamięci podręcznej strony.

Przykład (cytowany ze strony internetowej projektu):

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

Powyższe polecenie wyświetla listę niektórych plików * .MYD, * .MYI i * .frm, które mają niektóre strony zapisane w pamięci podręcznej stron.

Jeśli naprawdę chcesz znaleźć wszystkie pliki z co najmniej 1 stroną w pamięci podręcznej stron, może to zadziałać (nieprzetestowane, wygeneruje duży wynik i prawdopodobnie potrwa bardzo długo):

cd /
find . -type f | xargs fincore --pages=false --summarize --only-cached
yjwong
źródło