Samba 共享文件夹在更新大量文件时变得无响应(使用 repo sync 命令)

Samba shared folder becomes unresponsive when updating lot of files (using repo sync command)

我在 Linux (Ubuntu) 机器上有一个代码库,它与使用 samba 的其他机器共享。当从 MacOS (10.15.5) 访问代码库并使用 'repo sync' 时,命令在几个 git 存储库突然更新后停止,并显示以下消息

fatal: Unable to read directory. Resource temporarily unavailable!

我不确定为什么会这样。在我重新安装 samba 共享文件夹之前没有任何效果

日志没有显示任何错误。关于可能导致此问题的任何线索?

这是 samba 的相关配置

## Samba Version is 4.7.6-Ubuntu
[Global]
min protocol = SMB2
log level = 2
syslog = true
max log size = 1000

; Disabled this for debugging
; vfs objects = catia fruit streams_xattr

; fruit:metadata = stream
; fruit:model = MacSamba

; fruit:posix_rename = yes
; fruit:veto_appledouble = no
; fruit:wipe_intentionally_left_blank_rfork = yes
; fruit:delete_empty_adfiles = yes


[Extension_Project]
    path = /******
    valid users = *****

    guest ok = no
    read only = no
    writable = yes
    browseable = yes

所以我做了三件事:

1. 日志显示没有错误,但每次打开文件数为 16384 时结束。我将其更新为 937730(只是其中一个配置中的任意数字)

2. 当我 运行 回购同步时, GIT 回购的更新数量更好但它仍然会在某个时候停止(有总共 700+ git 个回购)和错误消息 "Too many open files"。我将 linux 打开文件限制更新为较大的数量。 (https://askubuntu.com/questions/1049058/how-to-increase-max-open-files-limit-on-ubuntu-18-04)

问题仍未解决,尽管在命令在客户端退出之前会更新更多的回购协议。 事实证明,repo 命令使服务器过载 waaaaay 太多打开的文件(大约 6 digit 打开文件数)。

3. 而不是 运行ning 'repo sync' 会按顺序更新所有 700 多个存储库,我使用下面的 shell 脚本来分块更新 repos

repo sync **SPACE SEPARATED LIST OF 20 PROJECTS**
sleep 100

repo sync **SPACE SEPARATED LIST OF 20 PROJECTS**
sleep 100

这不是解决方案,但目前有效。有人可以帮助找到更好的解决方案吗?