Intereting Posts
Как безопасно отключить сетевой ресурс на Linux STB без сбоев (я получаю GSOD)? если инструкция не работает должным образом терминал висит, когда потерянное соединение и ssh включено Как я могу узнать, является ли относительная символьная ссылка внутренней для определенного поддерева или нет? Замените одну строку на STDIN в Makefile Сообщение появляется после завершения каждой команды Правила IPSET игнорируются (CentOS 7) apt-get update: Как проверить ошибки GPG при использовании скриптов? sed: захват и замена всех данных между последней обратной косой чертой и запятой Преобразование файлов .docx в обычный текст и сохранение разрывов строк для поддержания ссылок на номера строк на исходный документ: howto & implications? FFmpeg не распознает мои аудиоисточники Кольца и уровни выполнения Centos: ошибки yum: конфликт зависимостей Как взаимодействовать с сообщением об ошибке Fedora 23 в dnf установить ошибку dnspython? Поделитесь WiFi-интернетом с тем же адаптером WiFi

Как оптимизировать Aria2 при загрузке тысяч маленьких файлов?

Моя отправная точка – этот вопрос . Теперь aria2 загружает файлы, но не так быстро, как я ожидал (я запускаю это на Macbook Pro с i7, гигабитным соединением и AC-wifi. Я совершенно точно не использую ни одно из этих звеньев цепи .).

Я использую aria2 с этими переключателями

-x 16 -s 1 

Поскольку файлы небольшие, я не вижу причин открывать несколько сокетов (-s 1) для каждой загрузки. Однако параллельная загрузка (-x 16. 16 – это максимум, не так ли?) Нескольких файлов должна увеличить общую скорость, не так ли?

Тем не менее, когда я читаю выходной журнал, загрузка не кажется параллельной. Я что-то упустил в том, как использовать арию?

Или узким местом является подача URL-адресов в aria (я использую find. -Tf, а затем использую результат для построения URL-адреса, переданного в aria с использованием конкатенации строк)?

    Открытие нескольких подключений не поможет вам, если вы отправите только одну загрузку на aria2c и когда размер файла небольшой. Но вы можете легко позволить нескольким командам aria2c работать параллельно, используя xargs -P

    Убедитесь, что значение -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 вместо использования pipe и xargs .

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