我想知道 可能有哪些值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 中。