INT 21h

Hi, I am Vladimir Smagin, SysAdmin, DevOps and barely good guy. Telegram Email / GIT / Микроблог / Thingiverse / 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 *

*

Микроблог перейти

# 2019-12-23 09:14:01

Очень интересная концепция, docker-compose для kubernetes kompose.io/ #devops #kubernetes #docker

# 2019-12-16 17:21:18

Надо будет почитать для общего развития как оживить кластер в случае проеба сертов habr.com/ru/company/southbridg #kubernetes #devops

# 2019-12-12 17:33:46

js bootstrap с интерфейсом как в DOS github.com/kristopolous/BOOTST


© Vladimir Smagin, 2005-2019. Копирование материалов без разрешения запрещено. GPG DA4CD0F5E222EA727D6A40C413BCE12E5618F071 *
Яндекс.Метрика

Fortune cookie: FORTUNE'S RULES TO LIVE BY: #8 Don't wear your high heels while making love on the pool table.