我已经设置cachefilesd
并检查它是否正确,我验证了以下内容:
cachefilesd
服务正在运行- NFS 存储已安装,
-o fsc
并且能够看到FSC
设置yes
为/proc/fs/nfsfs/volumes
- 当从 NFS 复制文件时,我看到添加了新内容
/var/cache/fscache
(这是在/etc/cachefilesd.conf
现在,当我第一次从 NFS 复制 4 Mb 时,按照命令所花费的时间time
约为400-450 millsecs
,然后如果我再次复制同一文件,时间将减少到50-60 millisecs
。 时间的减少让我很高兴,因为本地缓存正在按预期工作。
但是当我关闭cachefilesd
服务并重新安装存储而不-o fsc
选择此选项时,我仍然看到相同的行为,即第二次复制仍然需要相同的时间。我相信当cachefilesd
从本地缓存复制时应该更快。
我查看了几个网站,其中提到可以在 NFS 服务器本身上启用缓存,也许这就是为什么即使cachefilesd
关闭,第二次复制也会更快的原因。
因此,为了测试第二次复制是否来自本地缓存,我考虑使用引入延迟tc qdisc add dev eth0 root netem delay 400ms
。(我确保cachefilesd
已打开并且 NFS 存储已安装-o fsc
)。现在,通过这个,我看到第一次复制花费的时间比预期的要多得多,例如,8-10 secs
令人惊讶的是,如果文件是从本地缓存复制的,第二次复制需要大约800 millisecs
到,1 sec
这个时间仍然很长。此行为再次与cachefilesd
关闭时相匹配。
问题:
cachefilesd
为什么在开启并引入延迟的情况下第二次复制要花费这么多时间?- 如何查找文件是否从本地缓存中复制?
任何提示都会非常有帮助。
有人能提供任何信息吗?