NFS 服务器 - VFS:已达到最大文件限制

NFS 服务器 - VFS:已达到最大文件限制

我一直在尝试确定我的 CentOS 7.3 NFS 服务器挂起的原因/方式,我希望通过这篇文章获得一些见解或方向。该机器的用途是为客户端提供 NFS 存储服务。我使用 Nagios 来监控服务器,并使用 Ganglia/Graphite 来收集和查看指标。当 Nagios 检查返回未知状态并且实际上我无法通过 SSH 连接到服务器时,我第一次注意到这个问题。我在控制台上查了一下,但最终放弃并重新启动了机器,因为客户开始抱怨。重启似乎解决了这个问题。

日志实际上只有几个感兴趣的事件:大量“nfsd”警告,然后是大量“文件最大限制<>达到”错误:

  • nfsd:打开的连接太多,考虑增加线程数
  • VFS:已达到文件最大限制 6509328

Ganglia 指标显示 NFS 操作和连接在文件最大限制错误发生前大约 1 小时出现峰值。这些指标还显示,打开文件的数量在该小时内稳步增加(通常,打开文件的数量约为 7K,最大峰值约为 100K)。

以下是我正在努力解决的问题:

我对 NFS 客户端了解不多,我怀疑他们的工作负载可能触发了该问题。 NFS 线程数 (RPCNFSDCOUNT) 设置为 24,“ulimit -n”返回 1024。这是否意味着 NFS 客户端可以使用的最大打开文件数为 24 x 1024?

当系统报告已达到文件最大限制时,我无法识别负责的进程。查看 lsof 的输出,两个主要进程是 /usr/sbin/gssproxy 和 /usr/sbin/tuned,但都没有报告许多打开的文件(每个 IIRC 几百个)。在研究文件最大限制问题时,我发现了一些导致文件描述符泄漏的错误,但与我正在运行的版本无关。

这是否可能是某些激进客户的结果,或者似乎更有可能是其中一个流程中的泄漏(正常运行时间约为 300 天)。不管怎样,对于如何确定根本原因有什么建议吗?

谢谢,

相关内容