Oracle Linux挂载有众多小文件的的资料库报错

我在成功配置登录后,$HOME/SeaDrive/My Libraries下可见几个正常大小的资料库,但是一个160多G,由众多100k左右小文件组成的资料库下载出现错误,具体日志如下:

[09/12/24 07:03:04] seadrive.c(645): Starting SeaDrive client 2.0.15
[09/12/24 07:03:04] repo-mgr.c(3352): switching account to https://cloud.tsinghua.edu.cn xxxxxx.
[09/12/24 07:03:04] repo-mgr.c(2690): Failed to find repo 7ddbefde-6d8a-4901-84a5-4ca30959ab08.
[09/12/24 07:03:04] socket file exists, delete it anyway
[09/12/24 07:03:04] seadrive.c(673): rpc server started.
[09/12/24 07:03:04] seafile-session.c(410): Moving commits for deleted repo 7ddbefde-6d8a-4901-84a5-4ca30959ab08.
[09/12/24 07:03:04] repo-mgr.c(1379): Removing store /home/opc/.seadrive/data/deleted_store/commits/7ddbefde-6d8a-4901-84a5-4ca30959ab08
[09/12/24 07:03:06] sync-mgr.c(744): Repo 'My Library' sync state transition from 'synchronized' to 'committing'.
[09/12/24 07:03:06] sync-mgr.c(2107): Cloning repo WebSite_data(7ddbefde-6d8a-4901-84a5-4ca30959ab08).
[09/12/24 07:03:06] sync-mgr.c(744): Repo 'WebSite_data' sync state transition from 'synchronized' to 'get token'.
[09/12/24 07:03:06] sync-mgr.c(4730): All operations of repo My Library(232d1129) have been processed.
[09/12/24 07:03:06] sync-mgr.c(744): Repo 'My Library' sync state transition from 'committing' to 'synchronized'.
[09/12/24 07:03:06] sync-mgr.c(744): Repo 'WebSite_data' sync state transition from 'get token' to 'downloading'.
[09/12/24 07:03:06] http-tx-mgr.c(5206): Download with HTTP sync protocol version 2.
[09/12/24 07:03:06] http-tx-mgr.c(1286): Transfer repo '7ddbefde': ('normal', 'init') --> ('normal', 'check')
[09/12/24 07:03:07] http-tx-mgr.c(1286): Transfer repo '7ddbefde': ('normal', 'check') --> ('normal', 'commit')
[09/12/24 07:03:07] http-tx-mgr.c(1286): Transfer repo '7ddbefde': ('normal', 'commit') --> ('normal', 'fs')
[09/12/24 07:03:07] sync-mgr.c(744): Repo '本科课程' sync state transition from 'synchronized' to 'committing'.
[09/12/24 07:03:07] sync-mgr.c(4730): All operations of repo 本科课程(02eb0f3b) have been processed.
[09/12/24 07:03:07] sync-mgr.c(744): Repo '本科课程' sync state transition from 'committing' to 'synchronized'.
[09/12/24 07:03:07] http-tx-mgr.c(4548): Bad response code for GET https://cloud.tsinghua.edu.cn/seafhttp/repo/7ddbefde-6d8a-4901-84a5-4ca30959ab08/fs-id-list/?server-head=3b1b624983427a6b9e8e9683383c9a1aa623ba8e&dir-only=1: 447.
[09/12/24 07:03:07] http-tx-mgr.c(5234): Failed to get fs id list for repo 7ddbefde on server https://cloud.tsinghua.edu.cn.
[09/12/24 07:03:07] http-tx-mgr.c(1286): Transfer repo '7ddbefde': ('normal', 'fs') --> ('error', 'finished')
[09/12/24 07:03:07] sync-mgr.c(778): Repo 'WebSite_data' sync state transition from downloading to 'error': 'Error occured in download.'.
[09/12/24 07:03:09] sync-mgr.c(744): Repo '备份' sync state transition from 'synchronized' to 'committing'.
[09/12/24 07:03:09] sync-mgr.c(4730): All operations of repo 备份(046388df) have been processed.
[09/12/24 07:03:09] sync-mgr.c(744): Repo '备份' sync state transition from 'committing' to 'synchronized'.

seadrive.conf采用推荐配置:

[account]
server = https://cloud.tsinghua.edu.cn
username = xxxxxx
token = xxxxxx
is_pro = true

[general]
client_name = opc1

[cache]
size_limit = 10GB
clean_cache_interval = 10

SeaDrive源:官网CentOS/RHEL 7
OS: 5.15.0-202.135.2.el8uek.x86_64

补充:使用Linux桌面运行seadrive-gui可以正常挂载并访问WebSite_data这个目录;单个二级文件夹下的文件数大概是几万的数量级,需要几秒才显示出来,但是在服务器上seadrive.log很快便显示error

目前版本不建议支持几十万文件以上的资料库同步,如果这样的资料库同步多了,可能导致服务器卡死。因此建议通过配置选项来控制,让同步大量文件的资料库失败。

服务器 7.1.17 版本之前,配置以下选项,限制 fs-id-list 的处理时间不要超过5分钟。如果希望允许同步更大的资料库,可以提高这个处理时间,但是有导致服务器卡死的风险。这个选项不设置默认是不限处理时间。

[fileserver]
fs_id_list_request_timeout = 300

服务器 7.1.17 之后,配置以下选项,可以使得在一开始同步超大资料库的时候就让客户端失败。如果想支持同步更大的资料库,可以将两个参数调大,但是有导致服务器卡死的风险。

[fileserver]
max_sync_file_count = 100000
fs_id_list_request_timeout = 300

如果希望支持超大的资料库同步,还需要同时把 nginx 的请求超时时间调大,否则会由于 nginx 超时也导致客户端出错。

我的上述使用场景不是自建,而是使用学校搭建好的服务,无法修改服务器配置,现在最大的困惑是同一个资料库在Linux桌面seadrive-gui下可以正常同步,而在VPS不行,行为不一致,想了解是否存在修改服务器配置允许同步的方法。

Linux桌面除了使用GUI版本外,还有一个特殊之处在于这是我上传该文件夹的主机。因此我猜想上述禁用同步大量文件的选项是否被默认打开,而上传主机由于某种原因不受这个选项的影响。