我有 30 个集群节点共享的 NFS。节点是 Debian 5 和 6。NFS 服务器是 OpenSolaris 2009。我们有良好的硬件和 20Gbit Infiniband 网络。
在集群节点上,fs 操作非常敏捷,但在以下情况下则不然:
- 杂种狗
- SQLite3 的
- 一个 R 库。例如
Rscript <(echo "library(GOstats)")
它们都会在以下系统调用后卡住几分钟:
fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=1073741824, len=1}
或者fcntl(3, F_SETLK, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}
可能是什么原因?如何诊断和修复?
将 NFS 服务器切换到 OpenIndianaoi_148使固定?
答案1
这些系统调用获取文件上的锁。也许另一个进程当前有一个锁,而您的卡住进程正在等待释放该锁。有一些故障排除技巧(适用于较旧版本的 Solaris,但它们可能仍然有用)第 11 章奥莱利的管理 NFS 和 NIS,第二版。
答案2
查看服务器上 NFS 锁服务是否正在运行。
答案3
升级到最新的 OpenIndiana。问题消失了。