我想知道是否有办法从bash中刷新cpu缓存?我注意到here上有一个解决方案,但我不理解他的ruby代码以及这是否是一种刷新缓存的正确方法。
答案 0 :(得分:0)
您可以尝试以下命令:
sync && echo 1 > /proc/sys/vm/drop_caches
来自the documentation on kernel.org:
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
这是一种非破坏性操作,不会释放任何脏物。 要增加此操作释放的对象数,用户可以运行 在写入/ proc / sys / vm / drop_caches之前`sync'。这将最小化 系统上的脏对象数量,并创建更多的候选对象 丢弃。
此文件不是控制各种内核缓存增长的方法 (inode,dentries,pagecache等...)这些对象是自动的 内核在系统其他地方需要内存时回收。
使用此文件可能会导致性能问题。因为它丢弃缓存 对象,重新创建它可能需要大量的I / O和CPU 丢弃的物体,特别是如果它们被大量使用。因为这, 建议不要在测试或调试环境之外使用。