dvc/webdav下载慢
用 dvc 从局域网的 webdav 服务器上下大数据集时,下载速率最高只能到 19 MB/s,局域网是千兆网,完全没有充分利用。
dvc 用的是 webdavclient3,通过调试发现问题在于 webdavclient3 的 client.py 里下载有关的代码,如下:
for chunk in response.iter_content(chunk_size=128): buff.write(chunk)
每次只获取 128 字节的数据,太小了。如下将其改成 4 MB,改完后速度可以达到 115 MB/s,这就接近千兆网的极限,这才对。
for chunk in response.iter_content(chunk_size=2 ** 22): buff.write(chunk)