小型 Linux NFS4 客户端/服务器系统的延迟

小型 Linux NFS4 客户端/服务器系统的延迟

我们是一所小型大学的计算机科学系,使用 NFS4 和 Fedora 24 客户端运行 RHEL 7 服务器(约 40 台客户端计算机,约 150 个用户 - 很少并发)。我们遇到了延迟问题,并且在排除故障/试图找出问题所在时遇到了麻烦。症状示例:

  • Emacs 需要大约 2 分钟才能启动/可用。GUI 会快速弹出,但如果您在启动时尝试打开文件,应用程序就会挂起。如果您只是尝试打开emacs然后尝试打开文件时,应用程序会挂起两分钟。大约两分钟后,您可以创建文件、读取文件等,而不会出现问题。编辑:在本地文件(例如 /tmp/test.out)上运行不会出现延迟问题。此外,使用或emacs打开网络文件也没有问题。idle3gedit
  • 在命令行上使用 svn+ssh 从 Linux 客户端/台式机中签出项目非常慢——大约需要 3 分钟。如果您从另一台机器上使用 svn+ssh 签出项目,则需要 3
  • 您无法配置 Idle。单击配置菜单时,应用程序会挂起。更新:这似乎是 idle3 中的一个错误,在 Fedora 24 中尚未修复,但我们能够应用该修复程序。
  • 当您在应用程序(例如 emacs、Eclipse)中单击“打开/浏览”或打开文件管理器时,应用程序将挂起一段时间,同时检索文件。从命令行使用 ls 和 cd 速度很快。

经过长时间的延迟后,您可以毫无问题地读取/编辑/创建文件。

我发现这些应用程序的唯一共同点是它们都使用隐藏配置文件(、、、.emacs.d... )。我似乎找不到任何文档说明隐藏文件会以不同的方式处理。.idle.eclipse

任何建议都值得感激!

答案1

我将如何解决这个问题:

  1. 如果 ~/.emacs.d/ 由 NFS 挂载提供,并且
  2. 目标文件是第二个 NFS 服务器提供的 NFS 挂载,并且
  3. 将所有本地数据复制到客户端可以消除延迟,

然后我会将其中一个移回 NFS 并尝试重新创建该问题。

重读您的原始帖子时,我意识到我假设您有两个或更多 NFS 服务器,因为这是我在以前的雇主那里看到的。一个 NFS 服务器提供主目录,另一个提供二进制文件。我们发现在客户端本地运行二进制文件可以提高性能。:-)

如果您有一台 NFS 服务器,是否可以设置第二台服务器以进行故障排除?也许单个 NFS 服务器在某些时候不堪重负;使用第二台 NFS 服务器可能有助于隔离这种情况。

如果问题只出现在一两个客户端上,我会尝试找出这些客户端的独特之处。如果问题出现在每个客户端上,我会查看 NFS 服务器。

无论如何,查看 RHEL7 NFS 服务器上的日志都会有所帮助。

在 Google 上搜索“NFS 故障排除”会提供许多有用的页面,包括特发性肺结核。还有 Red Hat 的nfs 服务器配置。您可能已经看过它们了。

您说 NFS 服务器是 Red Hat EL 7。如果我与我的 RHEL 副本有支持合同,我会向 Red Hat 开具一张票据并请他们帮助排除故障。

希望这能有所帮助。祝你好运。


答案2

您对 nfs 使用什么挂载选项?删除类似选项lookupcache=none(并允许使用默认选项)将允许客户端更积极地缓存,我们注意到,当用户的主目录中添加了文件并且需要一个小时才能在远程计算机上看到它时,这可能会让用户感到困惑,但对于二进制文件来说,结果却没问题。

我们还设置actimeo=60noactime安装我们的应用程序。

主文件夹: rw,noatime,nfsvers=4,minorversion=1,soft,tcp,sec=sys,lookupcache=none,sloppy

应用程序/二进制文件: rw,noatime,nfsvers=4,minorversion=1,soft,tcp,sec=sys,actimeo=60,sloppy

另请参阅手册页中的“数据和元数据一致性”部分 https://linux.die.net/man/5/nfs

相关内容