下载数千个小文件时如何优化Aria2?

下载数千个小文件时如何优化Aria2?

我的出发点是这个问题。现在 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')

相关内容