在工作中,我们在计算机池中拥有多个工作站,用户主目录位于我们的中央 NAS 上,通过 NFS 安装。我们面临的问题是,这些共享上的文件访问有时会在一段时间后(几小时、几天……)变得难以忍受地缓慢。重新启动客户端计算机可以解决此问题。我们无法找出导致这种情况的原因,但使用我们的网络数据监控。
显然,有大量的test_stateid
调用正在进行。还有一个内核进程的 CPU 利用率达到 100%(在单个核心上)。
为了进行比较,在 NFS 仍然响应的机器上它看起来是这样的:
我们还观察到,卸载卷(umount -l
)后,调用次数test_stateid
进一步增加(从约 300 次/秒增加到约 3000 次/秒)。
我们还在内核日志中观察到了数千个这样的情况:
Dez 04 10:40:22 myhost01 kernel: nfs41_handle_sequence_flag_errors: "redacted.example.org" (client ID 5709396434020000) flags=0x00000040
Dez 04 10:40:22 myhost01 kernel: --> nfs4_alloc_slot used_slots=0001 highest_used=0 max_slots=10
Dez 04 10:40:22 myhost01 kernel: <-- nfs4_alloc_slot used_slots=0003 highest_used=1 slotid=1
Dez 04 10:40:22 myhost01 kernel: nfs4_free_slot: slotid 1 highest_used_slotid 0
Dez 04 10:40:22 myhost01 kernel: nfs41_sequence_process: Error 0 free the slot
Dez 04 10:40:22 myhost01 kernel: nfs4_free_slot: slotid 0 highest_used_slotid 4294967295
Dez 04 10:40:22 myhost01 kernel: --> nfs4_alloc_slot used_slots=0000 highest_used=4294967295 max_slots=10
Dez 04 10:40:22 myhost01 kernel: <-- nfs4_alloc_slot used_slots=0001 highest_used=0 slotid=0
Dez 04 10:40:22 myhost01 kernel: encode_sequence: sessionid=1681459543:564:96:0 seqid=176335892 slotid=0 max_slotid=0 cache_this=1
Dez 04 10:40:22 myhost01 kernel: decode_attr_type: type=00
Dez 04 10:40:22 myhost01 kernel: decode_attr_change: change attribute=108
Dez 04 10:40:22 myhost01 kernel: decode_attr_size: file size=149204
Dez 04 10:40:22 myhost01 kernel: decode_attr_fsid: fsid=(0x0/0x0)
Dez 04 10:40:22 myhost01 kernel: decode_attr_fileid: fileid=0
Dez 04 10:40:22 myhost01 kernel: decode_attr_fs_locations: fs_locations done, error = 0
Dez 04 10:40:22 myhost01 kernel: decode_attr_mode: file mode=00
Dez 04 10:40:22 myhost01 kernel: decode_attr_nlink: nlink=1
Dez 04 10:40:22 myhost01 kernel: decode_attr_rdev: rdev=(0x0:0x0)
Dez 04 10:40:22 myhost01 kernel: decode_attr_space_used: space used=0
Dez 04 10:40:22 myhost01 kernel: decode_attr_time_access: atime=0
Dez 04 10:40:22 myhost01 kernel: decode_attr_time_metadata: ctime=1700570570
Dez 04 10:40:22 myhost01 kernel: decode_attr_time_modify: mtime=1700570570
Dez 04 10:40:22 myhost01 kernel: decode_attr_mounted_on_fileid: fileid=0
Dez 04 10:40:22 myhost01 kernel: decode_getfattr_attrs: xdr returned 0
Dez 04 10:40:22 myhost01 kernel: decode_getfattr_generic: xdr returned 0
关于如何进一步调试这个问题有什么想法吗?
工作站采用的是 Ubuntu 22.04,内核为 6.2.0-37-generic。