Linux: echo 3 > /proc/sys/vm/drop_caches 需要几个小时才能完成

rmm*_*rmm 6 linux network-attached-storage nfs linux-kernel

我有一个 Thecus N8900 NAS,它是一个基于 Linux 的文件服务器,通过 NFS 向六个客户端提供文件。由于某些原因,色卡司支持尚未解释,它运行一个脚本,每 60 秒检查一次 /proc/meminfo,如果磁盘缓存超过可用 RAM 的 50%,它们会执行“echo 3 > /proc/sys/vm/drop_caches " 命令来刷新缓存。

撇开这是否有意义的问题不谈,实际的“echo 3 > /proc/sys/vm/drop_caches”命令可能需要几个小时才能完成,这对我来说似乎太长了。

最大的问题是,当这种情况发生时,机器上的负载会激增,磁盘利用率也是如此,这使得所有 NFS 流量都会爬行,直到命令最终完成,此时事情又会再次响应。

NAS 本身有 16 gig 的 RAM、7 个采用 raid6 配置的驱动器(加上一个热备用),根本没有驱动器问题(根据 SMART 测试)。

所以问题是:什么会导致 drop_caches 命令花费这么长时间?

sci*_*rus 1

删除缓存根本不需要花费太多时间。您确定它真的在几个小时内不会从该 echo 命令返回吗?

删除缓存后机器变慢是有道理的,因为以前可以从缓存读取的文件现在必须从磁盘读取。