我通过 lftp 并行下载文件到远程服务器上,并使用以下命令:
lftp ftp:*url*
cd into directory
mirror --parallel=10
我总共下载了 365 个文件,分为 12 个目录。当我使用这个命令时,需要几个小时,这并不是一个大问题,但我认为并行下载的文件越多,速度就越快。显然,必须有一个收益递减点,因为我预计并行下载所有 365 个文件会使系统超载。 (每个文件略多于 1 GB)。另外,随着我增加了并行下载的文件数量,我越来越多地收到消息waiting to reconnect....trying in 30s
等,因为我相信我对系统造成了负担过重。
有人对并行下载文件的有效方法有想法吗?提前致谢
答案1
并行运行的次数越多,发送方的负载就越大。
如果服务器有1000个TCP连接并且带宽有限,那么如果你有1个连接,你将获得服务器带宽的0.1%。
如果你有10个连接,你将获得服务器1%的带宽。
一般来说,我的建议是:
- 如果您不赶时间:使用单个连接
- 如果你控制了服务器,就可以为所欲为
- 如果您很着急并且无法控制服务器,请谨慎使用:有些接受 1000 个并行请求不会出现问题。其他人会在 100 个时陷入困境。如果您添加 10 个额外的并行请求,这可能会给服务器带来压力。
在您的情况下,听起来好像您处于第一种情况:您不着急,所以您应该使用单个连接。 “连接被拒绝”也是服务器过载的标志。如果您想使用超过 1 个连接,请考虑与拥有该服务器的任何人交谈。