此文章转载自:https://blog.csdn.net/weixin_35815578/article/details/64444259

今天去面试,被问到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也没错的,对吧

 

Logo

更多推荐