linux清除cache的2種方法
今天去面試,被問到linux下如何清除cache,一臉懵逼,因為是真的不知道,但記得用sync命令可以把記憶體中的資料寫入硬碟,就這樣說了,面試的技術好像不滿意,下來之後查了查,原來還有/proc/sys/vm/drop_caches這個檔案可以。
網上查了查資料,整理一下:
關於drop_caches檔案:系統預設為0
在Documentation/sysctl/vm.txt中有如下描述:
drop_caches
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
To free pagecache:僅清除頁面快取(PageCache)
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:清除目錄項和inode
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:清除頁面快取,目錄項和inode
echo 3 > /proc/sys/vm/drop_caches
As this is a non-destructive operation and dirty objects are not freeable, the user should run `sync' first.
我面試完,我看技術給我的答案上寫的是echo 1 > /proc/sys/vm/drop_caches,大家看著記住就好,其實我說sync也沒錯的,對吧