我们在一群isilons上运行nfs,在一台机器上创build一个目录并在另一个机器上读取(大约30秒)时,间歇性地经历了一个相当滞后的时间。
这似乎只在networking非常繁忙时才会发生,但是有人build议在尝试读取新目录之前在父目录上运行“ls”会强制NFS重新caching。
这听起来正确吗?
听起来就像你需要调整客户端上的acdirmin / acdirmax挂载选项来更改目录信息caching时间的上限和下限。 这30秒对应于30秒的默认acdirmin,这意味着信息必须在caching中至less30秒,客户端才会考虑外出刷新它。
看看是否调整acdirmin下降到15或10秒帮助。
而且,'ls'可能会帮助的原因是它导致了stat()发生在“。”上。 这可能会使该dentry的caching无效。 我记得我们必须在open()之前修改一些我们的工具来stat()一个文件或目录,以便validation这个项目是否存在于我们的一些NFS资料中。
所以这是其他客户端注意到文件已创build文件? (或者包括文件包含多less数据的变化)。
这些操作是否都在单个目录中,因为isilon在单个目录中的元数据性能方面存在问题。
你确定它不是写服务器的文件吗?如果你login到isilon并且从“设备”看目录,你是否看到服务器上出现的文件与客户端同时显示它写了。
出于好奇是两台机器安装相同的isilon砖(虽然这不应该是重要的,这将是有趣的)。
你有什么安装选项? (nfs v2是否有所作为(更多的好奇心,它没有readir +))