NFS 时间间隔过长

Posted

技术标签:

【中文标题】NFS 时间间隔过长【英文标题】:NFS time gap too long 【发布时间】:2013-07-18 07:43:33 【问题描述】:

我有 2 台机器通过 NFS 交换数据:2 个大约 20 字节的不同文件。客户端写入它的文件,服务器读取和删除它,然后它写入不同的文件,服务器读取和删除。等等。这 2 个文件始终具有相同的名称。

一切都好。他们运行 Linux 2.4。现在,我添加了另一个运行 Linux 2.6 的客户端。它的工作方式相同,它只使用不同名称的文件。

问题是新客户端在文件写入后大约 40 秒从服务器看到文件。我可以等待 4-5 甚至 10 秒,但不是 40 秒。

我尝试使用-o vers=2-o vers=3 挂载远程分区,但没有任何效果。 然后我试了echo 3 > /proc/sys/vm/drop_caches,(见NFS cache-cleaning command?)没有效果。

我可以做些什么来减少时间差距?

【问题讨论】:

【参考方案1】:

您可以尝试合并监听通知方法,使用 iNotify 来监控文件系统事件。

inotify API 提供了一种监控文件系统的机制 事件。 Inotify 可用于监控单个文件,或监控 目录。当一个目录被监听时,inotify 会返回事件 对于目录本身,以及目录中的文件

man page

问:我可以观看 sysfs(procfs、nfs...)吗?简单地说:是的,但是有 一些限制。这些限制因内核版本和 趋于变小。请阅读有关特定信息 文件系统。

FAQ page

这很可能会缩短时间间隔。

【讨论】:

我用inotify写了一个简单的程序,控制挂载点目录,放到新客户端上。程序只查看客户端所做的删除和创建,而不是服务器所做的。

以上是关于NFS 时间间隔过长的主要内容,如果未能解决你的问题,请参考以下文章

采样间隔和采样点大小的关系

Python -- 黏包

访问时间过长的排查步骤

session共享

CO88运行时间过长解决

查询执行时间过长