Opróżnianie pamięci podręcznej buforów
Jeśli kiedykolwiek chcesz go opróżnić, możesz użyć tego łańcucha poleceń.
# 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
Możesz zasygnalizować, że jądro Linux wyrzuci różne aspekty buforowanych elementów, zmieniając argument numeryczny na powyższe polecenie.
Aby zwolnić pamięć podręczną:
# echo 1 > /proc/sys/vm/drop_caches
Aby uwolnić dentries i i-węzły:
# echo 2 > /proc/sys/vm/drop_caches
Aby zwolnić pamięć podręczną, dentries i i-węzły:
# echo 3 > /proc/sys/vm/drop_caches
Powyższe mają być uruchamiane jako root. Jeśli próbujesz to zrobić sudo, musisz nieco zmienić składnię na coś takiego:
$ 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'
UWAGA: Istnieje bardziej ezoteryczna wersja powyższego polecenia, jeśli jesteś w to zaangażowany:
$ echo "echo 1 > /proc/sys/vm/drop_caches" | sudo sh
Dlaczego zmiana składni? Z tego /bin/echopowodu program działa jako root, sudoale powłoka przekierowująca dane wyjściowe echa do pliku zawierającego tylko root nadal działa jako użytkownik. Twoja bieżąca powłoka dokonuje przekierowania przed uruchomieniem sudo.
Sprawdzanie zawartości buforów i pamięci podręcznej
Sprawdź, linux-ftoolsczy chcesz przeanalizować zawartość buforów i pamięci podręcznej. W szczególności, jeśli chcesz zobaczyć, które pliki są obecnie buforowane.
fincore
Dzięki temu narzędziu możesz zobaczyć, które pliki są buforowane w danym katalogu.
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.
Na przykład /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
Z powyższych danych wyjściowych widać, że obecnie jest buforowanych kilka plików * .MYD, * .MYI i * .frm.
Zamiana
Jeśli chcesz wyczyścić swap, możesz użyć następujących poleceń.
$ free
total used free shared buffers cached
Mem: 7987492 7298164 689328 0 30416 457936
-/+ buffers/cache: 6809812 1177680
Swap: 5963772 609452 5354320
Następnie użyj tego polecenia, aby wyłączyć zamianę:
$ swapoff -a
Możesz potwierdzić, że jest teraz pusty:
$ free
total used free shared buffers cached
Mem: 7987492 7777912 209580 0 39332 489864
-/+ buffers/cache: 7248716 738776
Swap: 0 0 0
Aby ponownie włączyć:
$ swapon -a
A teraz potwierdź free:
$ free
total used free shared buffers cached
Mem: 7987492 7785572 201920 0 41556 491508
-/+ buffers/cache: 7252508 734984
Swap: 5963772 0 5963772