Linux 中什么时候需要刷新缓存?

Linux 中什么时候需要刷新缓存?

我碰到。然后记得看到回来的东西。任何人都可以详细说明用户是否需要刷新缓存,或者只有当您想要对系统进行基准测试时才需要刷新缓存,或者是否有任何其他使用场景来刷新缓存?

答案1

sync当您需要确保任何脏扇区都刷新到介质时,需要调用。

一种常见的情况是,当您将dd图像fs写入usb闪存棒并且不提供conv=fdatasync选项时(在此处和那里发布的大多数食谱中都缺少该选项):闪存设备的写入速度非常低,因此可能需要几分钟才能完成写入所有内容,特别是如果该棒之前写入了许多扇区。

sync程序确保在其终止时所有内容都被刷新。

答案2

除了基准测试之外,我知道没有任何情况需要刷新缓存。 Linux 缓存的管理非常巧妙,并且它们使用的内存始终按需可用。因此,除了减慢系统速度之外,刷新它们可能不会实现任何目标。

要详细阅读有关此问题的内容,请参阅这个网页

答案3

哔叽希安已经说过关于Linux中缓存管理的重要事情,特别是通过干扰很难获得任何东西。

但是,除了基准测试之外,还有一些特殊情况可以从删除缓存中受益:

例如,我有一台具有大 RAM (32 GB) 的笔记本电脑。当然,Linux利用了它,这很好。但是,当系统休眠时,所有有效的内存内容都必须写入持久存储(在我的例子中是交换)。因此,提前释放一些内存可以极大地加速休眠过程。

这就是为什么我有

echo 3 > /proc/sys/vm/drop_caches

在我的一个休眠挂钩中,紧随sync.在我的例子中,速度的提升高达半个数量级。

当然,从休眠状态恢复也是如此。

注意:从休眠状态恢复后,系统反应速度明显变慢,直到缓存再次被填满。

相关内容