ソフトウェアのダウンロードリンクがCDNを使っている場合はダウンロード時間短縮のために分割ダウンローダを使ってみる
ファイルをダウンロードする際に wget などを利用する場合は最初から最後まで1つのコネクションでダウンロードしますが、ウェブサーバ側が Range request に対応していれば、axel のような分割ダウンローダを使うことで同時に複数のコネクションを張っての並列ダウンロードできます。
ですがこの方法は一般的には避けるべき方法です。ダウンロードサイトのサーバや途中経路に負担がかかる方法です。
ただしダウンロードリンクがAkamaiのようなCDNを使っているなら、そういったことをあまり気にしなくても良いのではと思います。CDNを使うのは、オリジンサーバの負担を減らしつつ強力な配信インフラをサービスとして使うためですから、ありがたく活用しても良いだろうと思います。
CDNを使っているかどうかを確認するには?
DNSサーバにホスト名で問い合わせてみて、帰ってきた情報の中に akamai.net などの CDN のホスト名が含まれていれば当たりです。
$ nslookup ダウンロードサーバのホスト名 Server: xxx.xxx.xxx.xxx Address: xxx.xxx.xxx.xxx#53 ダウンロードサーバのホスト名 canonical name = ______.g.akamai.net. Name: ______.g.akamai.net Address: xxx.xxx.xxx.xxx Name: ______.g.akamai.net Address: xxx.xxx.xxx.xxx
このようにしてもCDN経由かどうかの確証が持てない場合は普通に wget や curl を使いましょう。
分割ダウンロードによりどれくらいの差がでるのか?
とある7GBのファイルを axel で10分割ダウンロードしたら、およそ11分でダウンロードできました。
$ axel -n 10 -a http://[Akamai経由のソフトウェアダウンロードリンク] Initializing download: http://[Akamai経由のソフトウェアダウンロードリンク] File size: 75________ bytes Opening output file xxxxxxxxxx.xxx Starting download [ 18%] [.0 .1 ..2 ..3 .4 .5 ..6 ..7 ..8 ..9 ] [ 9.1MB/s] [10:45] ... Downloaded 7.0 Gigabyte in 11:15 minute(s). (10855.48 KB/s)
wget だと20分以上かかりそうです。
$ wget http://[Akamai経由のソフトウェアダウンロードリンク] Will not apply HSTS. The HSTS database must be a regular and non-world-writable file. ERROR: could not open HSTS store at '/home/pslabo/.wget-hsts'. HSTS will be disabled. --2019-07-22 11:19:19-- http://[Akamai経由のソフトウェアダウンロードリンク] Resolving サーバ名 (サーバ名)... xxx.xxx.xxx.xxx Connecting to サーバ名 (サーバ名)|xxx.xxx.xxx.xxx|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 75________ (7.0G) [application/octet-stream] Saving to: ‘xxxxxxxxxx.xxx’ xxxxxxxxxx.xxx 4%[=> ] 324.97M 3.65MB/s eta 20m 44s