pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


ソフトウェアのダウンロードリンクが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経由かどうかの確証が持てない場合は普通に wgetcurl を使いましょう。

分割ダウンロードによりどれくらいの差がでるのか?

とある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