Como otimizar o Aria2 ao baixar milhares de arquivos pequenos?

0

Meu ponto de partida é esta pergunta . Agora o aria2 está baixando os arquivos, mas não é tão rápido quanto eu esperava (estou executando isso em um Macbook Pro com um i7, conexão gigabit e AC-wifi. Eu definitivamente não estou maximizando nenhum desses links da cadeia .).

Eu uso aria2 com esses switches

-x 16 -s 1

Como os arquivos são pequenos, não vejo razão para abrir vários soquetes (-s 1) para cada download. No entanto, o download parallell (-x 16. 16 é max, não é?) De vários arquivos deve aumentar a velocidade global, não é?

No entanto, quando eu leio o log de saída, os downloads não parecem ser paralelos. Estou faltando alguma coisa em como usar aria?

Ou é o feed de URLs na ária que é o gargalo (eu uso find. -t f e depois uso o resultado para construir a URL alimentada na ária usando concatenação de string)?

    
por hensti 26.07.2018 / 10:57

1 resposta

0

Abrir várias conexões não ajudará muito quando você enviar apenas um download para aria2c e quando os tamanhos dos arquivos forem pequenos. Mas você pode facilmente permitir que vários comandos aria2c sejam executados em paralelo usando xargs -P <num>

Certifique-se de que o valor -P não seja maior que o permitido pelo servidor, caso contrário, o servidor retornará um erro.

find . -type f -printf '%P\n' \
    | xargs -I{} -P6 aria2c -x 1 -s 1 "https://web.archive.org/save/https://{}"

Ou deixe que xargs adicione todos os URLs a apenas uma aria2c chamada:

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

Mas acho que a melhor opção seria criar um descritor de arquivo de find como entrada para aria2 em vez de usar pipes e xargs .

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