挨拶と前書き
みなさんこんにちは、FascodeNetworkのブログスケジュール管理などを行っているなおこです。
Linuxを使うには大体ISOファイルダウンロードする必要があるわけですが、その際にISOファイルダウンロード、遅すぎって思いませんか?
ものにもよりますがファイルサイズが1GB~2GBぐらいあるわけなので当然時間かかるよねみたいなところはあります。
だけど気持ち早くダウンロードできたらめっちゃ良くね?
ということで普段wgetなどでダウンロードしている私は、Google Chromeを立ち上げてGoogle検索で調べていると下記のURLのようなaria2に関するqiitaの記事が見つかりました。
qiitaの記事を読むとどうやら、複数の接続を用いて並列ダウンロード行える模様。
ということで今回はaria2のご紹介をしたいと思います。
aria2をインストール
公式サイトからソースコードをダウンロード後ビルドして使うという手もありますが、すでにパッケージやバイナリが用意されているようなのでそちらを使うことにします。
OSによってインストール方法は異なりますがおおよそ下記の手順でインストールできると思われます。
Mac OS X
brew install aria2
UbuntuやDebian
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aria2
RHEL7やCentOS7
sudo yum update
sudo yum install epel-release
sudo yum install aria2
Arch Linux
sudo pacman -Syyu
sudo pacman -S aria2
Fedora
sudo dnf upgrade
sudo dnf install aria2
aria2実際に使ってみる
aria2ではデフォルトで最大16本まで同時接続を行いダウンロードができます。
今回は2つのソースからそれぞれ5本同時接続し10本で接続してみます。
gigenet.comさんfree.nchc.org.twさんのosdnミラーを勝手に使わせていただきます。
検証に使うマシン↓
- OS : Arch Linux
- CPU: AMD Ryzen 5 5600X (12) @ 3.700GHz
- GPU: NVIDIA GeForce GTX 960
- RAM: 32GB
ダウンロードするISOファイルのソース
- https://mirrors.gigenet.com/OSDN//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso
- https://free.nchc.org.tw/osdn//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso
HTTPSやHTTPでダウンロード
aria2で同時接続するには-x10 や-s10 などのオプション指定が必要です。
-x10 同時接続数(デフォルトでは1-16まで対応)
-s10 複数のサーバーに接続する際の同時接続数(デフォルトでは1-16まで対応)
上記のオプションを設定してコマンドにすると下記のようになります。
aria2c -x10 -s10 URL1 URL2
aria2c -x10 -s10 https://mirrors.gigenet.com/OSDN//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso https://free.nchc.org.tw/osdn//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso
timeコマンドで計測しながら実行してみると1分26秒ほどでダウンロードできたみたいです。
7.35s user
6.71s system
16% cpu
1:26.07 total
普通にwgetでosdnからダウンロードするとどれぐらいかかるか下記のコマンドにtimeコマンド付与して検証してみると
wget URL
wget https://free.nchc.org.tw/osdn//alterlinux/75537/alterlinux-xfce-ja-2021.07.11-08cbb1704-x86_64.iso
4分57秒(訳5分)かかります。
3.07s user
8.29s system
3% cpu
4:57.79 total
10倍に早くはなりませんでしたが、4倍〜5倍早くなるのはかなりの時間短縮になりますね.
ブロックサイズの指定なども行えるようです。
-k1M 同時接続のブロックサイズ(5MIBの場合は-k5M デフォルトでは20MiBが設定されている模様)
SFTPやFTPでダウンロード
なんとaria2はsftpやftpのプロトコルにもサポートしてるとのこと、嬉しいことですね。
とはいえユーザ名やパスワードがかかっていることも多いですよねそのため専用のオプションが用意されているようです。
--ftp-user=
任意のユーザー名--ftp-passwd=任意の
パスワード
URLの指定はhttpsやhttpの部分を置き換える形で指定します。
- sftp://
example.com
/hoge.iso - ftp://
example.com
/hoge.iso
上記の内容を元にコマンド考えると下記のようになります。ちなみに接続本数の指定も行うことできるみたいです。
aria2c –ftp-user=user –ftp-passwd=pass URL
aria2c --ftp-user=任意のユーザー名 --ftp-passwd=任意のパスワード sftp://example.com/hoge.iso
その他のオプションについては下記のaria2マニュアルページがgithub.ioにありますので詳しく知りたい場合はぜひご覧ください。
最後に
今回紹介した、aria2を用いて同時接続を行うやり方はサーバー側に負担がかかるため、連続した使用は避け、急いでるときにたまに使うぐらいのほうが良いでしょう。
それではそれではまた、次のブログでお会いしましょう。
参考にさせていただいたサイト
コメント