INT 21h

Hi, I am Vladimir Smagin, SysAdmin and Kaptain. Telegram Email / GIT / RSS / GPG

Многопотоковая закачка файлов в линуксе \ Multithreaded file downloading in Linux

№ 4823 В разделе Sysadmin от February 6th, 2013,
В подшивках:

Для некоторых людей это покажется открытием, но многопотоковые закачки могут значительно ускорить загрузку файлов. Как это многопотоковая? Допустим, что вы хотите скачать новый дистрибутив любимой Ubuntu и делаете это как обычно через браузер (Firefox, Chrome, Opera или че у вас там). Браузеры качают только в 1 поток – от начала файла и до конца. Бывает, что на серверах стоит специальная программа, которая ограничивает скорость подключения клиентов где-нибудь до 100-300 кб в сек и вы сидите в грусти, надувая пузыри из слюней. В этой ситуации может помочь вам закачка в несколько потоков. Происходит оно следующим образом: на сервер посылается запрос на размер файла и в соответствии полученому размеру на вашем диске создается файл. Далее длина файла делится на куски – количество необходимых вам потоков. Если файл большой, то кусков может быть больше потоков, но не менее того, что вы указали. Получается, что ограничивающий сервер отдает не 1 поток в 300 кб\с, а несколько потоков каждый по 300 кб\с. Т.е. если потока 4, то файл скачается на скорости не 300, а 1200 – в 4 раза быстрее.

Под Windows этих качалок как фекаляшек в свинарнике, а вот под Linux с ними всегда была проблема. Точнее проблемы не было с самими программами, а была с их известностью. Самой известной такой качалкой является Downloader for X (он же d4x). Менее известными являются MultiGet (написан кривовато и китайцами) и aria2. Вот последний наиболее функционален и имеет консольную версию, что облегчает ее использование на серверах и машинах опытных пользователей. Качает торренты, металинки, http и ftp. Подробнее вы можете прочитать в документации командой man aria2c сразу после того, как установите программу или в гугле 🙂 Кстати, я написал замечательную графическую оболочку для этой программы.

Например, вы хотите скачать дистрибутив Ubuntu в 5 потоков (по умолчанию 1):

aria2c -x 5 ftp://mirror.yandex.ru/ubuntu-cdimage/releases/12.10/release/ubuntu-12.10-server-armhf+omap.img

Не менее полезными окажутся параметры -i и -j. Первый позволит вам указать текстовый файл с несколькими урлами для закачки (например, вы хотите скачать 10 фильмов за ночь), а второй параметр укажет сколько одновременно файлов из списка будет качаться. По умолчанию -j 5, но рекомендую вам выставлять этот параметр 1 или 2, если вы используете -x потому, что количество потоков перемножится. Это значит, что файлы из списка будут качаться одновременно и каждый в несколько потоков. Это может отрицательно сказаться на скорости. Но если у вас жирненький 40 мбитный канал, то не заморачивайтесь.

Для aria2 есть еще один графический интерфейс (уж простите, но название не помню, но гуглится оч легко), который я не пробовал, но вы всегда его можете попробовать, если он есть в репозитории вашей ОС или если умелка позволяет, то установите ручками.

Кое-что интересненькое о торрентах:

Нет комментариев »

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Яндекс.Метрика

Fortune cookie: Hear about... the guy who was so well endowed that he had a fiveskin?