如何从bash中刷新cpu缓存?

时间:2016-04-27 11:16:48

标签: bash caching cpu-cache

我想知道是否有办法从bash中刷新cpu缓存?我注意到here上有一个解决方案,但我不理解他的ruby代码以及这是否是一种刷新缓存的正确方法。

1 个答案:

答案 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   丢弃的物体,特别是如果它们被大量使用。因为这,   建议不要在测试或调试环境之外使用。