NFSv4.1 挂载速度极慢,直到重新挂载

NFSv4.1 挂载速度极慢,直到重新挂载

我遇到了一个问题,我不知道如何调试。希望您能进一步帮助我。

在我的小组中,我管理一个由多台计算机和一台 Synology NAS 服务器组成的 Linux 计算集群。由于用户主页需要在所有计算机上都可访问,因此我们将其存储在 NAS 上,并在启动时通过 NFS 挂载它们。这是/etc/fstab我们为此使用的条目:

X.X.X.X:/path/on/nas /home  nfs      defaults,nolock    0       0

奇怪的是,自从我们在 NAS 上启用 NFSv4.1 以来,对于某些计算机来说,访问/home变得非常慢。事实上,速度非常慢,以至于有时在启动过程中挂载会超时。如果不是这种情况,调用ls需要/home长达 10 秒的时间。

现在真正奇怪的是,如果我手动卸载/homemount -a随后调用再次挂载它,突然一切都恢复正常,/home目录可以像以前一样快速访问。因此,似乎只有在我尝试在启动期间挂载目录时才会出现性能问题。此外,同一网络中的其他节点根本没有这个问题,并且按预期运行。由于我们通过 PXE 和 FAI 安装所有节点,因此它们都具有相同的操作系统(Ubuntu 20.04)和配置。

正如我所说,我不知道如何进一步调试此问题。因此,如果您知道该去哪里查找,我很乐意提供更多信息。

提前谢谢您!

最好的,蒂姆

编辑:我刚刚在客户端上启用了详细日志记录rpcdebug -m nfs -s all,发现它充满了错误:

[ 4446.566627] nfs4_reset_session: session reset failed with status -10022 for server X.X.X.X!
[ 4446.566628] nfs4_handle_reclaim_lease_error: handled error -10022 for server X.X.X.X
[ 4446.566739] --> nfs4_proc_create_session clp=0000000080f0363b session=0000000014a4cf1c
[ 4446.566739] nfs4_init_channel_attrs: Fore Channel : max_rqst_sz=1049620 max_resp_sz=1049480 max_ops=8 max_reqs=64
[ 4446.566740] nfs4_init_channel_attrs: Back Channel : max_rqst_sz=4096 max_resp_sz=4096 max_resp_sz_cached=0 max_ops=2 max_reqs=16
[ 4446.566851] <-- nfs4_proc_create_session
[ 4447.590948] nfs4_handle_reclaim_lease_error: handled error -10008 for server X.X.X.X
[ 4447.590949] --> nfs4_proc_create_session clp=0000000080f0363b session=0000000014a4cf1c
[ 4447.590949] nfs4_init_channel_attrs: Fore Channel : max_rqst_sz=1049620 max_resp_sz=1049480 max_ops=8 max_reqs=64
[ 4447.590950] nfs4_init_channel_attrs: Back Channel : max_rqst_sz=4096 max_resp_sz=4096 max_resp_sz_cached=0 max_ops=2 max_reqs=16
[ 4447.591324] <-- nfs4_proc_create_session
[ 4448.614939] nfs4_handle_reclaim_lease_error: handled error -10008 for server X.X.X.X
[ 4448.614940] --> nfs4_proc_create_session clp=0000000080f0363b session=0000000014a4cf1c
[ 4448.614941] nfs4_init_channel_attrs: Fore Channel : max_rqst_sz=1049620 max_resp_sz=1049480 max_ops=8 max_reqs=64
[ 4448.614941] nfs4_init_channel_attrs: Back Channel : max_rqst_sz=4096 max_resp_sz=4096 max_resp_sz_cached=0 max_ops=2 max_reqs=16
[ 4448.615097] <-- nfs4_proc_create_session
[ 4449.638886] nfs4_handle_reclaim_lease_error: handled error -10008 for server X.X.X.X
[ 4449.638887] --> nfs4_proc_create_session clp=0000000080f0363b session=0000000014a4cf1c
[ 4449.638887] nfs4_init_channel_attrs: Fore Channel : max_rqst_sz=1049620 max_resp_sz=1049480 max_ops=8 max_reqs=64
[ 4449.638888] nfs4_init_channel_attrs: Back Channel : max_rqst_sz=4096 max_resp_sz=4096 max_resp_sz_cached=0 max_ops=2 max_reqs=16
[ 4449.641435] <-- nfs4_proc_create_session
[ 4450.662900] nfs4_handle_reclaim_lease_error: handled error -10008 for server X.X.X.X
[ 4450.662901] --> nfs4_proc_create_session clp=0000000080f0363b session=0000000014a4cf1c
[ 4450.662901] nfs4_init_channel_attrs: Fore Channel : max_rqst_sz=1049620 max_resp_sz=1049480 max_ops=8 max_reqs=64
[ 4450.662902] nfs4_init_channel_attrs: Back Channel : max_rqst_sz=4096 max_resp_sz=4096 max_resp_sz_cached=0 max_ops=2 max_reqs=16
[ 4450.663063] <-- nfs4_proc_create_session

看起来第一个错误是 10022 (NFS4ERR_STALE_CLIENTID),后面跟着一连串的 10008 (NFS4ERR_DELAY)。第二个错误导致客户端等待一秒钟,然后重试(https://patchwork.ozlabs.org/project/ubuntu-kernel/patch/1360102042-10732-74-git-send-email-herton.krzesinski@canonical.com/),这解释了 NFS 挂载的响应时间过长。但我不清楚这些错误的含义。

答案1

原因可能有很多种!

这是 IBM 提供的一些不错的最新“慢速 NFS”故障排除指南。我建议你试一试!

https://www.ibm.com/docs/en/aix/7.2?topic=troubleshooting-causes-slow-access-times-nfs

相关内容