【问题标题】:How to disable the filesystem cache on the root device?如何禁用根设备上的文件系统缓存?
【发布时间】:2012-04-12 16:07:50
【问题描述】:

我有一个运行在 KVM/QEMU 之上的 ARM 虚拟机,其中有一个文件作为根文件系统挂载。虚拟机没有网络,所以 NFS 安装根是不可能的。我正在测试一种特定的 IO 传输机制,所以我有点坚持我所拥有的。

我想将文件发送到客户机,所以我想将文件挂载到主机上,向其中写入内容,然后卸载它以强制刷新。文件系统的内容是微不足道的,我有一个备份,所以我没有损坏的问题。同样,性能也不是问题。

问题是,当我执行 mount-write-unmount 的操作时,客户永远看不到文件。我猜这是内核文件系统缓存的结果,当我执行 ls 时,文件不存在。我猜关于文件系统的元数据缓存在内存中,文件系统的更新永远不会出现。

我猜如果我禁用文件系统缓存,那么所有读取都将被强制到磁盘,导致文件系统被命中,我的文件出现。有小费吗?

【问题讨论】:

    标签: linux qemu


    【解决方案1】:

    我能想到这个:

    sync
    echo 3 > /proc/sys/vm/drop_caches
    

    还有这个:

    qemu -drive cache=none,file=file.img
    

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 2021-10-25
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 2010-09-14
      • 1970-01-01
      • 2017-11-23
      相关资源
      最近更新 更多