使用DVC推送ML模型训练数据至Dracoon数据空间时遇ReadTimeout错误
解决DVC通过WebDAV推送数据到Dracoon时的httpx.ReadTimeout问题
针对你遇到的DVC推送数据到Dracoon时出现的httpx.ReadTimeout错误,结合你的场景(认证正常、本地远程可用),可以通过以下步骤解决:
1. 调整WebDAV远程的超时参数
这是最直接的解决方案,通过增大超时阈值给文件传输足够时间:
- 使用
dvc remote modify命令修改远程配置(替换mydracoon为你的DVC远程名称):
可根据网络稳定性进一步调大数值。# 设置读取超时为5分钟(300秒) dvc remote modify mydracoon webdav_timeout 300 # 设置连接超时为1分钟(60秒) dvc remote modify mydracoon webdav_connect_timeout 60
2. 启用分块上传优化大文件传输
大文件单次传输容易触发超时,分块上传可以拆分文件为小片段传输:
# 设置分块大小为100MB(单位:字节) dvc remote modify mydracoon webdav_chunk_size 104857600
可根据文件平均大小调整分块值,比如50MB(52428800)或200MB(209715200)。
3. 限制上传并发数
过高的并发连接可能导致网络拥堵,触发服务器端超时:
# 将并发传输数限制为3(默认可能更高) dvc remote modify mydracoon webdav_max_concurrent_transfers 3
可从2-5的范围逐步测试,找到适合你网络的数值。
4. 升级DVC及WebDAV插件
你使用的版本可能存在已知的超时相关bug,升级到最新版本修复潜在问题:
pip install --upgrade dvc[webdav]
验证方法
调整参数后,先尝试推送单个大文件测试:
dvc push --file path/to/large_file
确认单个文件传输成功后,再执行完整的dvc push命令。
内容的提问来源于stack exchange,提问作者Cori
相关产品推荐
相关产品推荐

