/proc/sys/vm/drop_caches 值

/proc/sys/vm/drop_caches 值

我想知道 可能有哪些值drop_caches,以及这些值的含义是什么。

例如:

echo 3 > /proc/sys/vm/drop_caches

数字是什么3意思?这些数字、 或其他数字是1真实2的吗?如果是,它们的含义是什么?

答案1

直接引用来自文档 https://www.kernel.org/doc/Documentation/sysctl/vm.txt,通过简单的 google 搜索“linux drop_caches”即可轻松找到:

删除缓存

写入此内容将导致内核删除干净的缓存,以及可回收的平板对象,例如目录和索引节点。一旦掉落,他们的记忆就变得自由了。

释放页面缓存:

echo 1 > /proc/sys/vm/drop_caches

释放可回收的slab对象(包括dentry和inode):

echo 2 > /proc/sys/vm/drop_caches

释放slab对象和页面缓存:

echo 3 > /proc/sys/vm/drop_caches

这是一个非破坏性操作,不会释放任何脏对象。要增加此操作释放的对象数量,用户可以在写入 /proc/sys/vm/drop_caches 之前运行“sync”。这将最大限度地减少系统上脏对象的数量,并创建更多要删除的候选对象。

该文件不是控制各种内核缓存(索引节点、目录项、页面缓存等)增长的手段。当系统上的其他地方需要内存时,这些对象会由内核自动回收。

使用此文件可能会导致性能问题。由于它会丢弃缓存的对象,因此可能会花费大量 I/O 和 CPU 来重新创建删除的对象,特别是在它们被大量使用的情况下。因此,不建议在测试或调试环境之外使用。

使用此文件时,您可能会在内核日志中看到信息性消息:

猫(1234):drop_caches:3

这些仅供参考。它们并不意味着您的系统有任何问题。要禁用它们,请将 4(位 3)回显到 drop_caches 中。

相关内容