我的出发点是这个问题。现在 aria2 正在下载文件,但它没有我预期的那么快(我在配备 i7、千兆位连接和 AC-wifi 的 Macbook Pro 上运行它。我绝对不会最大化链中的任何一个链接.)。
我将 aria2 与这些开关一起使用
-x 16 -s 1
由于文件很小,我认为没有理由为每次下载打开多个套接字(-s 1)。但是,并行下载多个文件(-x 16. 16 是最大值,不是吗?)应该会提高整体速度,不是吗?
然而,当我阅读输出日志时,下载似乎不是并行的。我在如何使用 aria 方面遗漏了一些东西吗?
或者将 URL 馈送到 aria 中是否是瓶颈(我使用 find . -tf,然后使用结果通过字符串连接构建馈送到 aria 中的 URL)?
答案1
aria2c
当您仅发送一次下载且文件较小时,打开多个连接不会有太大帮助。但是您可以轻松地让多个aria2c
命令并行运行xargs -P <num>
确保该-P
值不大于服务器允许的值,否则服务器将返回错误。
find . -type f -printf '%P\n' \
| xargs -I{} -P6 aria2c -x 1 -s 1 "https://web.archive.org/save/https://{}"
或者将xargs
所有 URL 添加到一次aria2c
调用中:
find . -type f -exec 'https://web.archive.org/save/https://%P\n' \
| xargs aria2c -x 16 -s 1
但我认为最好的选择是创建一个文件描述符作为find
输入,aria2
而不是使用管道和xargs
.
aria2c -x 16 -s 1 -i <(find . -type f -printf 'https://web.archive.org/save/https://%P\n')