Sebelum melakukan pekerjaan pembandingan, bagaimana cara mengosongkan memori (RAM) yang digunakan Kernel Linux untuk buffer dan cache?
Perhatikan bahwa ini sebagian besar berguna untuk pembandingan. Mengosongkan buffer dan cache mengurangi pertunjukan! Jika Anda di sini karena Anda berpikir bahwa membebaskan buffer dan cache adalah hal yang positif, buka dan baca Linux memakan RAM saya!. Singkat cerita:memori bebas adalah memori yang tidak digunakan terbuang memori.
Jawaban yang Diterima:
Mengosongkan cache buffer
Jika Anda ingin mengosongkannya, Anda dapat menggunakan rantai perintah ini.
# 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
Anda dapat memberi sinyal Kernel Linux untuk menghapus berbagai aspek item yang di-cache dengan mengubah argumen numerik ke perintah di atas.
-
Untuk membebaskan cache halaman:
# echo 1 > /proc/sys/vm/drop_caches
-
Untuk membebaskan penyok dan inode:
# echo 2 > /proc/sys/vm/drop_caches
-
Untuk membebaskan pagecache, dentries, dan inode:
# echo 3 > /proc/sys/vm/drop_caches
Di atas dimaksudkan untuk dijalankan sebagai root. Jika Anda mencoba melakukannya menggunakan sudo
maka Anda perlu mengubah sedikit sintaks menjadi seperti ini:
$ 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'
CATATAN: Ada versi yang lebih esoteris dari perintah di atas jika Anda menyukainya:
$ echo "echo 1 > /proc/sys/vm/drop_caches" | sudo sh
Mengapa perubahan sintaks? /bin/echo
program berjalan sebagai root, karena sudo
, tetapi shell yang mengarahkan output echo ke file root-only masih berjalan seperti Anda. Shell Anda saat ini melakukan pengalihan sebelum sudo
dimulai.
Melihat apa yang ada di buffer dan cache
Lihat linux-ftools
jika Anda ingin menganalisis isi buffer &cache. Khususnya jika Anda ingin melihat file apa yang sedang di-cache.
fincore
Dengan alat ini Anda dapat melihat file apa yang sedang di-cache dalam direktori tertentu.
Filefincore [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.
Misalnya, /var/lib/mysql/blogindex
:
[email protected]:/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
Dengan output di atas Anda dapat melihat bahwa ada beberapa file *.MYD, *.MYI, dan *.frm yang sedang di-cache.
Terkait:Debian – Mengapa 'ls' tiba-tiba membungkus item dengan spasi dalam tanda kutip tunggal?Tukar
Jika Anda ingin menghapus swap Anda, Anda dapat menggunakan perintah berikut.
$ free
total used free shared buffers cached
Mem: 7987492 7298164 689328 0 30416 457936
-/+ buffers/cache: 6809812 1177680
Swap: 5963772 609452 5354320
Kemudian gunakan perintah ini untuk menonaktifkan swap:
$ swapoff -a
Anda dapat mengonfirmasi bahwa sekarang kosong:
$ free
total used free shared buffers cached
Mem: 7987492 7777912 209580 0 39332 489864
-/+ buffers/cache: 7248716 738776
Swap: 0 0 0
Dan untuk mengaktifkannya kembali:
$ swapon -a
Dan sekarang konfirmasi ulang dengan free
:
$ free
total used free shared buffers cached
Mem: 7987492 7785572 201920 0 41556 491508
-/+ buffers/cache: 7252508 734984
Swap: 5963772 0 5963772