link / rm / mv会在完成后立即将dentry元数据同步到永久存储吗?如果不是,何时?
答案 0 :(得分:0)
从https://www.kernel.org/doc/Documentation/sysctl/vm.txt,我明白了:
drop_caches
写入此内容将导致内核删除干净的缓存,以及 可回收的板坯对象,如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
这是一种非破坏性的操作,不会释放任何脏东西 对象。要增加此操作释放的对象数, 用户可以运行`sync'在写入/ proc / sys / vm / drop_caches之前。 这将最大限度地减少系统上的脏对象数量 创造更多的候选人。
此文件不是控制各种内核增长的方法 缓存(inode,dentries,pagecache等......)这些对象是 在其他地方需要内存时由内核自动回收 在系统上。
使用此文件可能会导致性能问题。既然它丢弃了 缓存的对象,它可能会花费大量的I / O和CPU 重新创建丢弃的对象,特别是如果它们被大量使用。 因此,在测试或调试环境之外使用 不推荐。
您可以在此文件中看到内核日志中的信息性消息 使用:
cat(1234):drop_caches:3
这些仅供参考。他们并不是说任何事情都是错的 与您的系统。要禁用它们,请将4(第3位)回显到drop_caches。