Документация по ОС FreeBSD Среда, 04.12.2024, 20:53
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Axel - многопоточная загрузка дистрибутива [2012]
По умолчанию во FreeBSD  для загрузки дистрибутивов в distfiles используется только одно подключение. Соответственно и загрузка идет в один поток. Также довольно часто зеркала ограничивают скорость соединения.  Если необходимо установить один-два порта, то это не является существенной проблемой. А вот когда берешься за новый сервер и необходимо устанавливать много софта, затрачивая минимум времени, тогда и пригодится утилита axel. Axel открывает несколько соединений, каждое из которых загружает свою часть файла, в результате ускоряя время загрузки. Для загрузки используются зеркала, перечисленные в Makefile, или, если они переопределены, в make.conf.
 
Выполним установку axel из системы портов (пока еще загрузка пойдет в один поток ;)  ):
 
# cd /usr/ports/ftp/axel && make install clean && rehash

Сборку выполнил с поддержкой NLS - поддержка мультиязычности. 
 
Следующий шаг - необходимо "подменить" стандартный fetch. Добавим в /etc/make.conf такой блок:
 
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 4 -a
DISABLE_SIZE=yes

где:
  • -n - количество соединений
  • -a - отображать статус загрузки 
Доступные для использования ключи:
 
# axel -h
 Usage: axel [options] url1 [url2] [url...]

-s x    Specify maximum speed (bytes per second)
-n x    Specify maximum number of connections
-o f    Specify local output file
-S [x]  Search for mirrors and download from x servers
-H x    Add header string
-U x    Set user agent
-N      Just don't use any proxy server
-q      Leave stdout alone
-v      More status information
-a      Alternate progress indicator
-h      This information
-V      Version information

Visit http://axel.alioth.debian.org/ to report bugs

Чтобы ознакомиться более детально с возможностями доступных опций, рекомендую обратиться к странице руководства.
 
Проверим, "как это работает"... Выполним, для примера, загрузку дистрибутива PHP:
 
# cd /usr/ports/lang/php5 && make fetch
 ===>  License check disabled, port has not defined LICENSE
===>  Found saved configuration for php5-5.2.9
=> php-5.3.9.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch http://dk.php.net/distributions/php-5.3.9.tar.bz2
Начинаю скачивание: http://dk.php.net/distributions/php-5.3.9.tar.bz2
Размер файла: 11704944 байта(ов)
Открывается выходной файл php-5.3.9.tar.bz2
Начинаем скачивание

[ 54%] [......0      ......1     .......2     .....3      ] [ 230,3KB/s] [00:22] 

Вот так... Необходимо вооружиться данным инструментом при настройке следующего сервера. Кстати, ничто не мешает использовать axel для загрузки файлов из сети. Пример загрузки файла:
 
# axel -n 6 -a http://test.muff.kiev.ua/test.zip
 
Начинаю скачивание: http://test.muff.kiev.ua/test.zip
Размер файла: 1469583360 байта(ов)
Открывается выходной файл test.zip
Начинаем скачивание 
 
[ 61%] [.....0   ...1    .....2   ....3   ....4   ....5   ] [   9,7MB/s] [00:56]

По завершению загрузки имеем небольшой отчет:
 
# axel -n 6 -a http://test.muff.kiev.ua/test.zip
 
Начинаю скачивание: http://test.muff.kiev.ua/test.zip
Размер файла: 1469583360 байта(ов)
Открывается выходной файл test.zip
Начинаем скачивание 
 
Соединение 2 закончилось                                                       ]
Соединение 0 закончилось                                                       ]
Соединение 3 закончилось                                                       ]
Соединение 1 закончилось                                                       ]
Соединение 4 закончилось                                                       ]
 [100%] [..................................................] [   9,7MB/s] [00:00] 
 
1401,5 мегабайта(ов) скачано за 2:24 секунд(ы). (9903,02 КБ/с)

Довольно неплохая альтернатива стандартному fetch.


Источник: http://muff.kiev.ua/content/axel-mnogopotochnaya-zagruzka-distributiva
Категория: Net | Добавил: oleg (06.02.2012) | Автор: muff
Просмотров: 1158 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024