何千もの小さなファイルをダウンロードするときにAria2を最適化する方法は?

何千もの小さなファイルをダウンロードするときにAria2を最適化する方法は?

私の出発点はこの問題。現在、aria2はファイルをダウンロードしていますが、予想ほど高速ではありません。 (私はi7、ギガビット接続、AC-wifiを搭載したMacbook Proで実行しています。チェーンのリンクは最大化しません。)

このスイッチにはaria2を使用します

-x 16 -s 1

ファイルが小さいため、ダウンロードするたびに複数のソケット(-s 1)を開く理由はありません。しかし、複数のファイルを並列にダウンロードすると(-x 16.16が最大値です。そうですか?)、全体の速度が速くなりますか?

しかし、出力ログを読んでみると、ダウンロードが並列に進まないようです。 ariaの使い方について何か抜けましたか?

それとも、ボトルネックのあるariaにURLを供給していますか? (私は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を1つのaria2c呼び出しに追加します。

find . -type f -exec 'https://web.archive.org/save/https://%P\n' \
    | xargs aria2c -x 16 -s 1

findしかし、私の考えに最適なオプションは、パイプaria2xargs

aria2c -x 16 -s 1 -i <(find . -type f -printf 'https://web.archive.org/save/https://%P\n')

関連情報