NFS 客户端/服务器故障排除

NFS 客户端/服务器故障排除


我有一个计算和存储节点。主目录通过 NFS 共享。从计算节点登录时,我遇到了 IO 问题。它运行速度非常慢。例如,“$wget”或“$svn co”从计算节点获取的数据比从存储节点获取的数据多几个数量级,或者由于创建文件/安装而导致的“$make”运行速度很慢。据推测这是由于从计算节点到存储节点的 IO 写入。我进行了几次测试以说服自己这确实是 IO 的问题。两个节点都通过千兆交换机连接,安装非常简单。

我不知道如何解决这个问题,因为我对 NFS 设置等还很陌生。如果您能提供任何关于如何开始解决这个问题的建议,我将不胜感激。

谢谢!

答案1

与本地文件系统相比,通过 NFS 传输大量小文件将会比较慢。

首先,您可以开始考虑调整 NFS 选项。我找到了以下一些资源:

IBM 文章尤其重要,因为您可以调整客户端上的可用设置,nfsstat以便在服务器上查看发生了什么。

其他可供研究的选项:

您可以考虑的一件事是缓存您的 NFS 挂载:如何在本地磁盘上缓存 NFS 共享?

由于这需要在客户端进行更改(您不必接触服务器),您可能需要抓取一个节点,在启用缓存的情况下挂载它,然后运行几次构建以查看它是否能改善情况。

在这种情况下,在部署大型 NFS /home 系统时,我所做的一件事是在客户端机器上提供一些本地磁盘上的空间,供用户用于 IO 密集型任务,例如/var/$username,但根据您的空间需求,这可能不适合您。

注意事项

听起来你正在通过 NFS home 进行拉取和编译,当我在大学里这样做的时候,情况是“好吧,这个 50 人班上的每个人都拉取这个源并输入 make!”这可能会完全破坏机器的响应能力,具体取决于人们正在构建什么。您需要尝试使用 NFS 设置并测量性能以最大限度地发挥它的作用。

答案2

第一步是确保你正在使用NFSv4;批量发送小型写入/同步,使得涉及大量小文件的操作更加高效。

相关内容