テストの概要
WindowsServerのTechnicalPreviewのIISでHTTP2が通信できるようなのでテストしてみます。
Azure上にサーバを配置し、ローカルにもWindowsServerを用意します。
レイテンシを計測したいのでサーバーのリージョンは**米国東部(バージニア州)**を選びました。
物理的な距離は1万キロ以上あります。
サーバーには大量の画像データを配置し、バースト的なリクエストに対してHTTP2がどの程度有効かを検証してみます。
環境
サーバー
Windows Server Technical Preview IIS8
仮想マシンインスタンスは「A2」
クライアント
HTTP2 Windows Server Tecnical Preview IE11
HTTP Windows8.1 IE11
テストデータ
こちらからサンプルデータを取得しました。
http://www.vision.caltech.edu/Image_Datasets/Caltech101/Caltech101.html
101_ObjectCategories.tar.gz
この中で使う画像データは次のディレクトリのものです。
car_side、airplanes、Faces、Faces_easy、Leopards、Motorbikes、watch
画像数 | 容量 |
---|---|
3,037ファイル | 55.3 MB |
htmlの内容は次のようなものです。
<html>
<head>
</head>
<body>
<h1>HTTP2 TEST</h1>
<img src="img/car_side/image_0001.jpg">
<img src="img/car_side/image_0002.jpg">
<img src="img/car_side/image_0003.jpg">
・・・・・
<img src="img/watch/image_0199.jpg">
<img src="img/watch/image_0200.jpg">
</body>
</html>
F12開発者ツールで計測します。
IEのキャッシュは一回毎にクリアしています。
Windows8.1からは確実にHTTP1.1が使われていることを確認しておきます。
結果
プロトコル | 1回目 | 2回目 | 3回目 | 平均 |
---|---|---|---|---|
HTTP (Windows8.1 IE11) |
83.82秒 | 83.31秒 | 82.67秒 | 83.26秒 |
HTTP2 (WindowsServer TecnicalPreview IE11) |
23.51秒 | 25.04秒 | 23.40秒 | 23.98秒 |
HTTP2はHTTP1.1に比べて3.47倍のスピード。
HTTPの約28%の時間でコンテンツを取得可能という結果になりました。
手順のメモ
Microsoft Azureに「WindowsServer TecnicalPreview」をインストールします。
IISをインストールしてファイアウォールとIEのセキュリティをOFFにします。
Azureポータルの仮想マシンの設定で80番と443番を許可します。
ブラウザから80番の疎通確認をします。
IISの管理画面から自己署名証明書の作成を行い、443に証明書をバインドします。
ブラウザから443番の疎通確認をします。
ローカルのHyper-Vに「Windows Server Tecnical Preview」をインストールします。
自己署名警告は無視します。
補足
クライアントOSにはWindows10のtecnical Previewを使いたかったのですが、Windows10のIEの開発者ツールはUIが変わっていて、ネットワークの項目に時間が表示されませんでした。したがって、なるべく同じ条件で計測したかったのでクライアントもWindows Serverを使用しました。