수천 개의 작은 파일을 다운로드할 때 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을 하나의 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')

관련 정보