我在一所学校教学生编程,学生们都可以登录任何一台计算机;他们的会话文件由一个公共 NFS 服务器存储。当我们使用要求高的工具(即 VSCode、Android Studio 或其他框架,如 Symfony 或 React)时,执行时间非常慢。让学生在本地目录中工作/tmp
是一个很好的解决方法,但也有点令人难过。
我是不是系统管理员,但我希望了解这里可能出现的问题:
- 在 NFS 上共享会话文件时,我们需要检查哪些常见的陷阱?
- 考虑到我们有大约 100 名学生同时工作,我的理解是上游 SSD 的性能无论如何都会高度分散,那么您认为这种架构可行吗?
- 出于许多其他原因,我建议我们改用笔记本电脑,如果撇开成本因素,这是否是更合理的选择?
答案1
要回答您的问题,您需要更深入地了解您的工作量和瓶颈。因此,第一步您应该分析您的 NFS 服务器,了解它面临哪种负载以及它为什么会变慢。
如果没有这些信息,我只能提供一般性建议:
- 您描述的应用程序(例如:Android Studio)使用许多小文件。这种访问模式对元数据开销非常敏感,因此您应该探索 NFS 客户端的各种数据和元数据缓存功能(即:)
ac
。无论如何,请务必阅读并了解缓存和其他优化如何影响数据一致性,方法是阅读nfs 手册页 - 为了更轻松地吸收随机写入,您可以探索
async
NFS 服务器选项,至少进行一些测试。请注意,这可能会导致数据丢失,因此请务必了解其含义。再次,请阅读相关手册页 - 在高负载时,使用它
iostat -x
来检查服务器磁盘利用率和延迟。也许你“只是”缺少硬件资源
无论如何,高性能 NFS 绝不是一个简单的设置。你可能需要如果您希望这样的设置表现良好,则需要一名熟练的系统管理员。