完成后,链接/ rm / mv会立即将dentry元数据同步到永久存储吗?如果不是,何时?
从https://www.kernel.org/doc/Documentation/sysctl/vm.txt,我得到这个:
drop_caches
写入此内容将导致内核删除干净的缓存,以及可重新填充的slab对象(如dentries和inode)。一旦丢弃,他们的记忆就会变得自由
要释放pagecache:
echo 1> / proc / sys / vm / drop_caches
要释放可回收的slab对象(包括dentries和inode):
echo 2> / proc / sys / vm / drop_caches
要释放slab对象和pagecache:
echo 3> / proc / sys / vm / drop_caches
这是一种非破坏性操作,不会释放任何脏物。为了增加此操作释放的对象数,用户可以在写入/ proc / sys / vm / drop_caches之前运行`sync'。这将最大限度地减少系统上脏对象的数量,并创建更多要删除的候选对象。
此文件不是控制各种内核缓存(inode,dentries,pagecache等)增长的方法。当系统上其他地方需要内存时,内核会自动回收这些对象。
使用此文件可能会导致性能问题。由于它会丢弃缓存的对象,因此重新创建已删除的对象可能会花费大量的I / O和CPU,尤其是在它们被大量使用的情况下。因此,建议不要在测试或调试环境之外使用。
使用此文件时,您可能会在内核日志中看到信息性消息:
cat(1234):drop_caches:3
这些仅供参考。它们并不意味着您的系统出现任何问题。要禁用它们,请将4(第3位)回显到drop_caches。